.torrents-table{

}
.torrents-box{
    position: relative;
    padding: 0px;
    border-spacing: 0px;
    empty-cells: hide;
}
.torrents-name{
    position: relative;
    z-index: 100;
    padding: 5px;
}

/* 站点级横幅通知组件（msgalert）：全站所有页面都可能挂出来，所以它必须和"站点
 * 骨架"统一节奏，而不是和某一个页面（比如 forums viewforum）的 hero 对齐。
 *
 * 对齐基准 = 内容卡片所在的纵向轴线 x=82 / w=1276。这条轴是 functions.php 里
 * 注入的全站规则定下的：所有不含 .torrents-table 的 td.embedded 都强制带上
 * padding-inline: var(--site-content-inline-gap, 26px)。所以 forum 的 hero、
 * index-card、其它面板都从同一条 x=82 开始。msgalert 在 table.main 之外，得
 * 把这两层留白（table.main 的 26px margin + td.embedded 的 26px padding）
 * 一起算上：左右各 52px，于是 100% - 104px = 1276。
 *
 * 例外：body.page-torrent-list 走的是 td.embedded:has(.torrents-table) 分支，
 * 跳过了 td.embedded 的 padding，搜索 toolbar 之类的页面顶级容器就停在 x=56 /
 * w=1328（只剩 table.main 的 26px 留白）。这种页面让 msgalert 也回到 100% - 52px，
 * 跟着顶部 toolbar 走，不再溢出表格视觉边界。
 *
 * 视觉语言：磨砂白底 + 中性细边框 + 16px 圆角 + 冷色微阴影，和 forum-view__hero、
 * forum-topic-section、index-card 同一套面板系统。颜色语义只通过 3px 左侧色条 +
 * 圆形 tinted icon 表达，避免整条横幅"喊出来"。
 *
 * 颜色 variant 通过 CSS 变量切换，base / hover 共用同一段排版逻辑，避免每个 variant
 * 都复制一份背景+边框+字色。
 */
.site-msgalert {
    /* 默认 = red variant 的色值；其它 variant 只覆盖这几个变量。 */
    --msgalert-accent: #c85a4b;
    --msgalert-accent-rgb: 200, 90, 75;
    --msgalert-text: #7b3a2f;
    --msgalert-text-hover: #5e2a22;
    box-sizing: border-box;
    width: min(100% - calc(var(--site-content-inline-gap, 26px) * 4), var(--site-shell-max-width, 1200px));
    margin: 0 auto 12px;
    text-align: left;
}

.site-msgalert--pm {
    width: fit-content;
    max-width: min(100% - calc(var(--site-content-inline-gap, 26px) * 4), var(--site-shell-max-width, 1200px));
}

/* 种子列表页 td.embedded 不吃 padding（被 :not(:has(.torrents-table)) 排除），
 * 内容直接撑到 table.main 的内缘。让 msgalert 也只留 table.main 一层的 26px 边距。 */
body.page-torrent-list .site-msgalert {
    width: min(100% - 52px, var(--site-shell-max-width, 1200px));
}

body.page-torrent-list .site-msgalert--pm {
    max-width: min(100% - 52px, var(--site-shell-max-width, 1200px));
}

.site-msgalert__link,
.site-msgalert__link:link,
.site-msgalert__link:visited {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    min-height: 38px;
    padding: 8px 16px 8px 13px;
    border: 1px solid rgba(220, 227, 236, 0.82);
    border-left: 3px solid var(--msgalert-accent);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.74);
    -webkit-backdrop-filter: blur(10px) saturate(1.08);
    backdrop-filter: blur(10px) saturate(1.08);
    color: var(--msgalert-text);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.45;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(49, 66, 96, 0.045),
                0 2px 6px rgba(49, 66, 96, 0.025);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.site-msgalert--pm .site-msgalert__link {
    min-height: 32px;
    padding: 5px 10px 5px 12px;
    border-left-width: 2px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 6px 14px rgba(49, 66, 96, 0.045);
}

.site-msgalert__link:hover,
.site-msgalert__link:focus,
.site-msgalert__link:link:hover,
.site-msgalert__link:visited:hover {
    border-color: rgba(var(--msgalert-accent-rgb), 0.42);
    background: rgba(255, 253, 251, 0.88);
    color: var(--msgalert-text-hover);
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(49, 66, 96, 0.08),
                0 2px 6px rgba(49, 66, 96, 0.04);
}

.site-msgalert__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: rgba(var(--msgalert-accent-rgb), 0.14);
    color: var(--msgalert-accent);
    font-size: 10.5px;
}

.site-msgalert--pm .site-msgalert__icon {
    width: 18px;
    height: 18px;
}

.site-msgalert__text {
    min-width: 0;
}

.site-msgalert__count {
    margin: 0 3px;
    color: var(--msgalert-accent);
    font-size: 14px;
    font-weight: 800;
}

.site-msgalert--pm .site-msgalert__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    margin: 0 4px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--msgalert-accent);
    color: #fff;
    font-size: 12px;
    line-height: 18px;
    vertical-align: 1px;
}

.site-msgalert__action {
    flex: 0 0 auto;
    margin-left: 2px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--msgalert-accent);
    color: #fff;
    font-size: 11.5px;
    font-weight: 700;
    white-space: nowrap;
    box-shadow: 0 4px 10px rgba(var(--msgalert-accent-rgb), 0.2);
}

/* Variant 仅切换 4 个 CSS 变量；底纹、边框、阴影、圆角等版面参数继承 base，
 * 保证整条横幅和 hero / topic-section 始终处于同一套面板视觉里。
 *
 * 颜色取值小幅去饱和（相比 PC 端老 stark variant），让 banner 在不抢戏的前提下
 * 仍然能用色调把"严重性档位"传达出来。 */
.site-msgalert--orange {
    --msgalert-accent: #d68e37;
    --msgalert-accent-rgb: 214, 142, 55;
    --msgalert-text: #7b4d1c;
    --msgalert-text-hover: #5a3712;
}

.site-msgalert--green {
    --msgalert-accent: #52965c;
    --msgalert-accent-rgb: 82, 150, 92;
    --msgalert-text: #2f6f3d;
    --msgalert-text-hover: #1f5128;
}

.site-msgalert--blue {
    --msgalert-accent: #4c7fb4;
    --msgalert-accent-rgb: 76, 127, 180;
    --msgalert-text: #2f5f9a;
    --msgalert-text-hover: #1d447a;
}

.site-msgalert--gray,
.site-msgalert--black {
    --msgalert-accent: #75808b;
    --msgalert-accent-rgb: 117, 128, 139;
    --msgalert-text: #4d5862;
    --msgalert-text-hover: #313a44;
}

.site-msgalert--darkred {
    --msgalert-accent: #a0322a;
    --msgalert-accent-rgb: 160, 50, 42;
    --msgalert-text: #5e2018;
    --msgalert-text-hover: #3d130c;
}

@media (max-width: 720px) {
    .site-msgalert {
        width: min(100% - 24px, var(--site-shell-max-width, 1200px));
    }

    .site-msgalert__link {
        align-items: flex-start;
        justify-content: flex-start;
        flex-wrap: wrap;
        padding: 10px 12px;
    }

    .site-msgalert__action {
        margin-left: 30px;
    }
}

/* 新人/全局考核提示卡片（渲染在 .site-msgalert__text 内） */
.site-msgalert__link:has(.exam-card) {
    align-items: flex-start;
}
.site-msgalert__link:has(.exam-card) .site-msgalert__icon {
    margin-top: 1px;
}
.exam-card {
    display: flex;
    flex-direction: column;
    gap: 7px;
    width: 100%;
}
.exam-card__head {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.exam-card__head-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--msgalert-text, #7b4d1c);
    font-size: 12.5px;
    font-weight: 700;
}
.exam-card__head-label i {
    font-size: 12px;
    opacity: 0.85;
}
.exam-card__deadline {
    display: inline-flex;
    align-items: center;
    padding: 1px 9px;
    border-radius: 999px;
    background: rgba(var(--msgalert-accent-rgb, 214, 142, 55), 0.16);
    color: #b5611a;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.01em;
}
.exam-card__rows {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
}
.exam-card__row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.exam-card__label {
    color: #8a7257;
    font-size: 12px;
    font-weight: 600;
}
.exam-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 1px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1.65;
    white-space: nowrap;
}
.exam-card__badge.is-pass {
    background: rgba(82, 150, 92, 0.15);
    color: #3f8a4f;
}
.exam-card__badge.is-pass i {
    font-size: 9px;
}
.exam-card__badge.is-need {
    background: rgba(199, 83, 47, 0.13);
    color: #c0532f;
}
.exam-card__badge.is-need b {
    font-weight: 800;
}
.exam-card__foot {
    font-size: 11.5px;
    line-height: 1.5;
    color: #8a7257;
}
.exam-card__foot.is-keep {
    color: #c0532f;
    font-weight: 600;
}
.exam-card__foot.is-escape {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #b5611a;
    font-weight: 600;
}
.exam-card__foot.is-escape i {
    font-size: 11px;
    opacity: 0.9;
}

/* 个人信息栏 🔔 通知下拉 */
.site-userbar__notify {
    position: relative;
    display: inline-flex;
}
.site-userbar__notify-toggle {
    border: 0;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
}
.site-userbar__notify-panel {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 600;
    width: min(360px, 86vw);
    max-height: min(70vh, 520px);
    overflow-y: auto;
    padding: 8px;
    border: 1px solid rgba(229, 201, 168, 0.7);
    border-radius: 14px;
    background: #fffdf9;
    box-shadow: 0 18px 44px rgba(60, 40, 15, 0.18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
}
.site-userbar__notify.is-open .site-userbar__notify-panel {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
/* 面板被 JS portal 到 <body> 后，改用 fixed 定位，彻底脱离 userbar 的层叠上下文 */
.site-userbar__notify-panel--portal {
    position: fixed;
    top: 0;
    left: 0;
    right: auto;
    z-index: 100000;
    transform: translateY(-6px);
}
.site-userbar__notify-panel--portal.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.site-userbar__notify-head {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px 8px;
    color: #8a7257;
    font-size: 12px;
    font-weight: 700;
    border-bottom: 1px solid rgba(229, 201, 168, 0.4);
}
.site-userbar__notify-head i {
    color: #d68e37;
}
.site-userbar__notify-head em {
    margin-left: auto;
    font-style: normal;
    color: #b5611a;
    font-weight: 800;
}
.site-userbar__notify-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-top: 6px;
}
.site-userbar__notify-item {
    display: flex;
    gap: 9px;
    padding: 9px 10px;
    border-radius: 10px;
    text-decoration: none;
    color: #5f4e3e;
    border-left: 3px solid var(--msgalert-accent, #d68e37);
    background: rgba(var(--msgalert-accent-rgb, 214, 142, 55), 0.05);
    transition: background 0.15s ease;
}
.site-userbar__notify-item:hover {
    background: rgba(var(--msgalert-accent-rgb, 214, 142, 55), 0.11);
    text-decoration: none;
}
.site-userbar__notify-item-icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(var(--msgalert-accent-rgb, 214, 142, 55), 0.16);
    color: var(--msgalert-accent, #d68e37);
    font-size: 11px;
}
.site-userbar__notify-item-body {
    flex: 1;
    min-width: 0;
    font-size: 12px;
    line-height: 1.5;
}
.site-userbar__notify-item--orange {
    --msgalert-accent: #d68e37;
    --msgalert-accent-rgb: 214, 142, 55;
    --msgalert-text: #7b4d1c;
}
.site-userbar__notify-item--green {
    --msgalert-accent: #52965c;
    --msgalert-accent-rgb: 82, 150, 92;
    --msgalert-text: #2f6f3d;
}
.site-userbar__notify-item--gray {
    --msgalert-accent: #75808b;
    --msgalert-accent-rgb: 117, 128, 139;
    --msgalert-text: #4d5862;
}
.site-userbar__notify-item--black {
    --msgalert-accent: #6b5a48;
    --msgalert-accent-rgb: 107, 90, 72;
    --msgalert-text: #4a3a29;
}

.torrent-audit-cell {
    position: relative;
    padding-left: 6px !important;
}

.torrent-audit-bar {
    position: absolute;
    left: 0;
    top: -1px;
    bottom: -1px;
    width: 4px;
    z-index: 2;
    display: block;
    cursor: help;
}

.torrent-audit-bar--ok {
    background: #5ea96a;
}

.torrent-audit-bar--wait,
.torrent-audit-bar--retry {
    background: #e1b15f;
}

.torrent-audit-bar--fail {
    background: #b95a72;
}

.torrent-sticky-icons {
    display: inline-flex;
    align-items: center;
    margin-right: 5px;
    vertical-align: middle;
}

.torrent-sticky-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    line-height: 1;
    opacity: 0.78;
    vertical-align: middle;
}

.torrent-sticky-icon i {
    font-size: 11px;
    line-height: 1;
}

.torrent-sticky-icon--normal {
    /* 普通置顶：图钉 + 砖红。带橙调的红，较纯红更柔和，与金/蓝两档
     * 在相邻行并列时视觉重量更均衡，不会过于抢眼。
     * 支持用户自定义：var(--torrent-sticky-icon-normal, 默认色)。 */
    color: var(--torrent-sticky-icon-normal, #c24a32);
}

.torrent-sticky-icon--global {
    /* 总置顶（pos_group=220，全站最高级）：纯金色五角星，无徽章背景。
     * 前一版用渐变金底 + 阴影徽章视觉权重太重，在列表里比另两档图标
     * 大一圈像"广告位"；改为仅上色的纯图标，保持和图钉/地球视觉等重，
     * 靠"金色 + 星形"自然传达"最高级/精选"。
     * 支持用户自定义：var(--torrent-sticky-icon-top, 默认色)。 */
    color: var(--torrent-sticky-icon-top, #c98514);
}

.torrent-sticky-icon--web {
    /* 团队推荐：地球 + 蓝色。蓝与"团队/社区/全球"通常绑定，色相
     * 完全独立于红(normal)与金(global)，三档视觉身份不混淆。
     * 支持用户自定义：var(--torrent-sticky-icon-web, 默认色)。 */
    color: var(--torrent-sticky-icon-web, #2476c7);
}

body.page-torrent-list .torrent-search-box__advanced-toggle:active {
    background: rgba(241, 228, 207, 0.78);
    color: #70563c;
}

body.page-torrent-list .torrent-search-box__advanced-toggle.is-open,
body.page-torrent-list .torrent-search-box__advanced-toggle.is-open:hover,
body.page-torrent-list .torrent-search-box__advanced-toggle.is-open:focus {
    background: rgba(241, 228, 207, 0.68);
    color: #70563c;
    box-shadow: none;
}

.torrent-type-cell {
    min-width: 96px;
    position: relative;
}

.torrent-type-stack {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-height: 0;
}

.torrent-type-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    line-height: 0;
    /* 圆角统一为 6px，与二级图标保持一致，视觉更现代。 */
    border-radius: 6px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: 0 1px 2px rgba(111, 58, 0, 0.16), inset 0 0 0 1px rgba(255, 255, 255, 0.22);
    /*
     * 降低类型图标的视觉权重：
     * - saturate(0.82)   饱和度降 18%，避免彩色卡片抢过标题
     * - brightness(0.98) 轻微压暗，平衡降饱和后的发灰感
     * 只影响背景图（cattrans.gif 透明占位 + background-image 里的真正图片），
     * 不会影响外层 box-shadow/边框层级。
     */
    filter: saturate(0.82) brightness(0.98);
}

.torrent-type-badge--secondary {
    border-radius: 6px;
}

.torrent-type-badge a,
.torrent-type-badge img {
    display: block;
    line-height: 0;
}

.torrent-type-placeholder {
    color: #8d5d2f;
    opacity: 0.75;
}

.torrent-colhead-icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    text-decoration: none;
    vertical-align: middle;
    line-height: 1;
}

td.colhead.torrent-text-colhead {
    color: #8d5d2f;
}

td.colhead .torrent-front-filter-head-link,
td.colhead .torrent-front-filter-head-link:visited {
    display: inline-block;
    color: #8d5d2f;
    text-decoration: none;
    transition: color 0.18s ease, opacity 0.18s ease;
}

td.colhead .torrent-front-filter-head-link:hover,
td.colhead .torrent-front-filter-head-link:focus,
td.colhead .torrent-front-filter-head-link:active {
    color: #6f3a00;
}

.torrent-colhead-icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    /* 表头由橙红降到深焦糖后，原 #8d5d2f 棕色图标几乎与底色融成一团，
     * 改为带 80% 透明度的米色，与表头白文字成同语言但稍弱 */
    color: rgba(248, 236, 216, 0.82);
    opacity: 1;
    transition: color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease, opacity 0.18s ease;
}

.torrent-colhead-icon i {
    font-size: 12px;
    line-height: 1;
}

.torrent-colhead-icon-link:hover .torrent-colhead-icon,
.torrent-colhead-icon-link:focus .torrent-colhead-icon {
    opacity: 1;
    transform: translateY(-1px) scale(1.06);
}

.torrent-colhead-icon--seeders {
    color: rgba(248, 236, 216, 0.82);
}

.torrent-colhead-icon--leechers {
    color: rgba(248, 236, 216, 0.82);
}

.torrent-colhead-icon--snatched {
    color: rgba(248, 236, 216, 0.82);
}

.torrent-colhead-icon--seeders i,
.torrent-colhead-icon--leechers i,
.torrent-colhead-icon--snatched i {
    font-size: 13px;
}

.torrent-colhead-icon-link--active .torrent-colhead-icon {
    opacity: 1;
    background: rgba(255, 255, 255, 0.16);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}

.torrent-colhead-icon-link--active .torrent-colhead-icon::after {
    content: "";
    position: absolute;
    right: -2px;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    opacity: 0.96;
}

.torrent-colhead-icon-link--asc .torrent-colhead-icon::after {
    top: -2px;
    border-bottom: 6px solid currentColor;
}

.torrent-colhead-icon-link--desc .torrent-colhead-icon::after {
    bottom: -2px;
    border-top: 6px solid currentColor;
}

.torrent-colhead-icon-link--active:hover .torrent-colhead-icon,
.torrent-colhead-icon-link--active:focus .torrent-colhead-icon {
    background: rgba(255, 255, 255, 0.24);
}

.torrent-colhead-icon-link--active .torrent-colhead-icon--comments,
.torrent-colhead-icon-link--active .torrent-colhead-icon--time,
.torrent-colhead-icon-link--active .torrent-colhead-icon--size,
.torrent-colhead-icon-link--active .torrent-colhead-icon--uploader {
    /* 排序激活态：从米色升到纯白，配合白色 box-shadow 描边形成"被点亮"反馈 */
    color: #ffffff;
}

.torrent-colhead-icon-link--active .torrent-colhead-icon--seeders {
    color: #ffffff;
}

.torrent-colhead-icon-link--active .torrent-colhead-icon--leechers {
    color: #ffffff;
}

.torrent-colhead-icon-link--active .torrent-colhead-icon--snatched {
    color: #ffffff;
}

.torrent-colhead-icon--progress {
    position: relative;
}

.torrent-colhead-icon--progress:hover {
    opacity: 1;
    transform: translateY(-1px) scale(1.06);
}

.torrent-row-action-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    text-decoration: none;
    vertical-align: middle;
    line-height: 1;
}

.torrent-row-action-link--stacked {
    display: block;
    margin-top: 4px;
}

.torrent-row-action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    color: #9f8667;
    opacity: 0.8;
    transition: color 0.18s ease, opacity 0.18s ease, transform 0.18s ease;
}

.torrent-row-action-link:hover .torrent-row-action-icon,
.torrent-row-action-link:focus .torrent-row-action-icon {
    opacity: 1;
    transform: translateY(-1px) scale(1.08);
}

.torrent-row-action-icon--download {
    color: #9b958e;
}

.torrent-row-action-icon--promotion {
    color: #9b958e;
}

.torrent-row-action-link--download:hover .torrent-row-action-icon--download,
.torrent-row-action-link--download:focus .torrent-row-action-icon--download {
    color: #738ba3;
}

.site-hero-banner {
    --site-hero-banner-height: clamp(220px, 22vw, 320px);
    /*
     * 主内容区通过 .site-mainouter--with-banner { margin-top: -20px } 上拉
     * 20px 压在横幅底边，以便与 nav 的暖奶油色无缝衔接、避免浅灰横条。
     * 但图片走 object-fit: contain 居中在 swiper 中央，会被这 20px 压住
     * 底部内容。这里把"被遮挡的 20px"留给 swiper 下方作为内边距，
     * 同时让图片实际渲染区域只占上方高度——效果上图片完整可见，整体
     * 视觉（圆角、底色、衔接）保持不变。
     *
     * 调整此值时需与 .site-mainouter--with-banner 的 margin-top 同步。
     */
    --site-hero-banner-overlap: 20px;
    position: relative;
    width: 100%;
    padding: 15px 0 0 0;
    box-sizing: border-box;
}

html.hero-banner-hidden .site-hero-banner-cell {
    min-height: 0;
}

.site-hero-banner__swiper {
    position: relative;
    overflow: hidden;
    min-height: 0;
    border-radius: 16px 16px 0 0;
    background: #140f0d;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
    transition: height 0.45s ease;
}

.site-hero-banner__swiper::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 26px;
    z-index: 4;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        rgba(20, 15, 13, 0) 0%,
        rgba(20, 15, 13, 0.08) 58%,
        rgba(20, 15, 13, 0.16) 100%
    );
    box-shadow: inset 0 -8px 16px rgba(20, 15, 13, 0.08);
}

.site-hero-banner__slide,
.site-hero-banner__image-link {
    display: block;
    height: 100%;
}

.site-hero-banner__swiper .swiper-slide .site-hero-banner__image {
    display: block;
    position: relative;
    z-index: 2;
    width: auto;
    max-width: 100%;
    max-height: 100%;
    height: auto;
    object-fit: contain;
    object-position: center center;
    transform: none;
    filter: drop-shadow(0 18px 24px rgba(8, 5, 4, 0.28));
    margin: 0 auto;
    -webkit-mask-image: linear-gradient(
        90deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 1) 5%,
        rgba(0, 0, 0, 1) 95%,
        rgba(0, 0, 0, 0) 100%
    );
    mask-image: linear-gradient(
        90deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(0, 0, 0, 1) 5%,
        rgba(0, 0, 0, 1) 95%,
        rgba(0, 0, 0, 0) 100%
    );
}

.site-hero-banner__image-link {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    isolation: isolate;
    background: #140f0d;
    border-radius: inherit;
    /*
     * 给图片容器底部预留一段高度，等于主内容区上拉盖住的量
     * (--site-hero-banner-overlap)。这样 object-fit: contain 的图片会在
     * 这个"已缩小的高度范围"里完整显示，不会被下方 nav 遮挡。
     * padding-bottom 让图片居中时仍在可见区内垂直居中。
     */
    padding-bottom: var(--site-hero-banner-overlap, 20px);
    box-sizing: border-box;
}
    cursor: pointer;
    transition: filter 0.2s ease;
}

.site-hero-banner__image-link:hover,
.site-hero-banner__image-link:focus-visible {
    filter: brightness(1.06);
}

.site-hero-banner__image-link::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background:
        radial-gradient(circle at center, rgba(20, 15, 13, 0) 0%, rgba(20, 15, 13, 0) 55%, rgba(20, 15, 13, 0.12) 76%, rgba(20, 15, 13, 0.34) 100%),
        linear-gradient(
            90deg,
            rgba(20, 15, 13, 0.5) 0%,
            rgba(20, 15, 13, 0.18) 10%,
            rgba(20, 15, 13, 0) 22%,
            rgba(20, 15, 13, 0) 78%,
            rgba(20, 15, 13, 0.18) 90%,
            rgba(20, 15, 13, 0.5) 100%
        );
}

.site-hero-banner__backdrop {
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    filter: brightness(0.7) blur(8px) saturate(0.95);
    transform: scale(1.12);
    opacity: 0.88;
}

.site-hero-banner__backdrop::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background:
        radial-gradient(circle at center, rgba(20, 15, 13, 0) 0%, rgba(20, 15, 13, 0) 50%, rgba(20, 15, 13, 0.14) 75%, rgba(20, 15, 13, 0.38) 100%),
        linear-gradient(
            90deg,
            rgba(20, 15, 13, 0.55) 0%,
            rgba(20, 15, 13, 0.18) 18%,
            rgba(20, 15, 13, 0) 34%,
            rgba(20, 15, 13, 0) 66%,
            rgba(20, 15, 13, 0.18) 82%,
            rgba(20, 15, 13, 0.55) 100%
        );
}

/* 悬停放大效果已禁用，由用户在面板中手动调整尺寸 */
.site-hero-banner__swiper {
    transition: none;
}

.site-hero-banner__image,
.site-hero-banner__backdrop {
    transition: none;
}

/* ===== 顶部横幅尺寸自定义控制面板 ===== */
.hero-settings {
    position: absolute;
    top: 27px;
    right: 31px;
    z-index: 50;
    font-family: inherit;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.site-hero-banner:hover .hero-settings,
.hero-settings.is-open,
.hero-settings:focus-within {
    opacity: 1;
    pointer-events: auto;
}

.hero-settings__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(20, 15, 13, 0.6);
    color: rgba(255, 247, 241, 0.9);
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.hero-settings__btn:hover,
.hero-settings__btn:focus-visible,
.hero-settings.is-open .hero-settings__btn {
    background: rgba(20, 15, 13, 0.85);
}

.hero-settings__btn:hover {
    transform: rotate(45deg);
}

.hero-settings__btn i {
    font-size: 14px;
    line-height: 1;
}

.hero-settings__panel {
    position: absolute;
    top: 38px;
    right: 0;
    width: 240px;
    padding: 14px 16px;
    border-radius: 12px;
    background: rgba(20, 15, 13, 0.92);
    color: #fff7f1;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.35);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    font-size: 13px;
    line-height: 1.4;
    transform-origin: top right;
    animation: heroSettingsIn 0.18s ease-out;
}

.hero-settings__panel[hidden] {
    display: none;
}

@keyframes heroSettingsIn {
    from { opacity: 0; transform: scale(0.92) translateY(-6px); }
    to   { opacity: 1; transform: scale(1) translateY(0); }
}

.hero-settings__row {
    margin-bottom: 12px;
}

.hero-settings__row:last-child {
    margin-bottom: 0;
}

.hero-settings__label {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
    color: rgba(255, 247, 241, 0.8);
    font-size: 12px;
}

.hero-settings__value {
    color: #ff9718;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.hero-settings__toggle {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    color: rgba(255, 247, 241, 0.95);
    font-size: 13px;
}

.hero-settings__toggle input {
    accent-color: #ff9718;
    cursor: pointer;
}

.hero-settings__reset {
    display: inline-block;
    padding: 5px 12px;
    border: 1px solid rgba(255, 247, 241, 0.3);
    border-radius: 6px;
    background: transparent;
    color: rgba(255, 247, 241, 0.85);
    font-size: 12px;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.hero-settings__reset:hover {
    background: rgba(255, 151, 24, 0.18);
    border-color: #ff9718;
    color: #fff;
}

/* 横幅隐藏：只隐藏图片本体，保留齿轮在页面右上角永远可见 */
html.hero-banner-hidden .site-hero-banner {
    padding: 0 !important;
}

html.hero-banner-hidden .site-hero-banner__swiper {
    display: none !important;
}

/*
 * 横幅隐藏时也把设置入口一起隐藏 ——
 * "显示/隐藏横幅"的开关已迁到 usercp → 网站设定 → 全站页面，
 * 横幅本身看不见了也没有 hover 目标可供唤起设置按钮，
 * 前端再保留"漂浮固定按钮"会是多余入口。想重新打开横幅的用户
 * 请到控制面板里勾选即可。
 */
html.hero-banner-hidden .hero-settings {
    display: none !important;
}

/* 隐藏横幅时，去掉为压在 banner 上而设的负边距 / 透明背景 / 顶部圆角 */
:root {
    --site-shell-max-width: 1960px;
    --site-shell-side-gap: 16px;
}

html.hero-banner-hidden .site-mainouter.site-mainouter--with-banner {
    margin-top: 0 !important;
    border-radius: 0;
}

.site-mainouter.site-mainouter--with-banner,
table.mainouter {
    width: min(calc(100% - (var(--site-shell-side-gap) * 2)), var(--site-shell-max-width));
    min-width: 0 !important;
    margin-left: auto;
    margin-right: auto;
}

/*
 * 让横幅、主导航栏、个人信息栏 (以及下方主内容) 的左右边线严格对齐。
 *
 * 问题：table.mainouter 是 <table>，遇到内部宽内容 (大量菜单项、宽表格列)
 *      会被自动撑大到超过它声明的 width，导致 mainouter (含 nav + userbar)
 *      比同样规则的 banner (.site-head--with-banner，普通 div) 更宽，
 *      边线在交界处出现 "突出"。
 *
 * 方案：把 mainouter 及其 <tbody>/<tr>/<td> 直接子节点全部转成 block，
 *      强制按 mainouter 声明的 width 渲染；内部 #mainmenu 已自带
 *      flex-wrap: nowrap + overflow-x: auto，长导航条会自动横向滚动；
 *      td 上加 min-width: 0 + overflow-x: auto，防止深层宽表 (如种子列表)
 *      把外框再次撑大。
 */
.site-mainouter.site-mainouter--with-banner,
table.mainouter {
    display: block;
    box-sizing: border-box;
}

.site-mainouter.site-mainouter--with-banner > tbody,
table.mainouter > tbody {
    display: block;
    width: 100%;
}

.site-mainouter.site-mainouter--with-banner > tbody > tr,
table.mainouter > tbody > tr {
    display: block;
    width: 100%;
}

.site-mainouter.site-mainouter--with-banner > tbody > tr > td,
table.mainouter > tbody > tr > td {
    display: block;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* 内容区允许深层宽表横向滚动，避免再次撑大外框 */
.site-mainouter.site-mainouter--with-banner > tbody > tr > td#outer,
table.mainouter > tbody > tr > td#outer {
    overflow-x: auto;
    border: 0 !important;
}

.site-head.site-head--with-banner {
    width: min(calc(100% - (var(--site-shell-side-gap) * 2)), var(--site-shell-max-width)) !important;
    min-width: 0 !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

html.hero-banner-hidden .site-mainouter--with-banner #nav_block {
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-radius: 0;
    padding-top: 8px;
}

html.hero-banner-hidden .site-head--with-banner {
    padding-top: 6px;
}

/* ===== 四角拖动手柄（调整高度） ===== */
.hero-resize-handle {
    position: absolute;
    width: 22px;
    height: 22px;
    z-index: 30;
    opacity: 0;
    cursor: ns-resize;
    transition: opacity 0.18s ease, transform 0.15s ease, background 0.15s ease;
    background: rgba(20, 15, 13, 0.55);
    border-radius: 50%;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    pointer-events: auto;
    touch-action: none;
}

.hero-resize-handle::before {
    content: "";
    position: absolute;
    inset: 6px;
    border-left: 2px solid rgba(255, 247, 241, 0.92);
    border-top: 2px solid rgba(255, 247, 241, 0.92);
    border-radius: 1px;
}

.hero-resize-handle--tl { top: 8px;    left: 8px; }
.hero-resize-handle--tr { top: 8px;    right: 8px; transform: scaleX(-1); }
/*
 * 下排手柄上移：.site-mainouter--with-banner 用 margin-top: -20px
 * 把主内容区上拉，盖在横幅 swiper 的底部 20px 上。
 * 若手柄留在 bottom: 8px，下半部分（约 12px）会被 mainouter 的不透明
 * 渐变背景遮住，只能看到顶端。这里上移到 bottom: 30px = 20px 重叠区
 * + 10px 安全距离，确保两个手柄完整显露。
 */
.hero-resize-handle--bl { bottom: 30px; left: 8px; transform: scaleY(-1); }
.hero-resize-handle--br { bottom: 30px; right: 8px; transform: scale(-1, -1); }

.site-hero-banner__swiper:hover .hero-resize-handle,
.hero-resize-handle:focus-visible,
.hero-resize-handle.is-dragging {
    opacity: 0.9;
}

.hero-resize-handle:hover,
.hero-resize-handle.is-dragging {
    background: rgba(255, 151, 24, 0.85);
}

.hero-resize-handle--tr:hover, .hero-resize-handle--tr.is-dragging { transform: scaleX(-1) scale(1.1); }
.hero-resize-handle--bl:hover, .hero-resize-handle--bl.is-dragging { transform: scaleY(-1) scale(1.1); }
.hero-resize-handle--br:hover, .hero-resize-handle--br.is-dragging { transform: scale(-1.1, -1.1); }
.hero-resize-handle--tl:hover, .hero-resize-handle--tl.is-dragging { transform: scale(1.1); }

/* 拖拽时全局禁用文本选择 / 改变光标 */
html.hero-banner-resizing,
html.hero-banner-resizing * {
    user-select: none !important;
    cursor: ns-resize !important;
}

.site-hero-banner__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
    pointer-events: none;
    background: linear-gradient(
        180deg,
        rgba(20, 15, 13, 0) 55%,
        rgba(20, 15, 13, 0.08) 72%,
        rgba(20, 15, 13, 0.22) 86%,
        rgba(20, 15, 13, 0.42) 95%,
        rgba(20, 15, 13, 0.62) 100%
    );
}

.site-hero-banner__pagination.swiper-pagination {
    position: absolute;
    right: 24px;
    bottom: 12px;
    left: auto;
    width: auto;
    z-index: 3;
    text-align: right;
    opacity: 0.65;
}

.site-hero-banner__pagination .swiper-pagination-bullet {
    width: 6px;
    height: 6px;
    background: rgba(255, 247, 242, 0.26);
    opacity: 1;
}

.site-hero-banner__pagination .swiper-pagination-bullet-active,
.site-hero-banner__pagination .swiper-pagination-bullet-active-main {
    background: rgba(255, 247, 241, 0.72);
}

.site-hero-banner__nav-button.swiper-button-prev,
.site-hero-banner__nav-button.swiper-button-next {
    display: none;
}

.site-mainouter.site-mainouter--with-banner {
    position: relative;
    margin-top: -20px;
    overflow: visible;
    border-radius: 16px 16px 0 0;
    box-shadow: none;
    /*
     * 顶部 ~150px 用 nav_block 同色的暖奶油，避免冷白底色透到
     * 横幅 / 导航栏交界处形成浅灰横条；之后平滑过渡到白色，
     * 保持下方主内容区域的中性背景。
     */
    background:
        linear-gradient(180deg,
            rgb(255, 247, 235) 0,
            rgb(252, 241, 225) 80px,
            rgb(255, 255, 255) 200px) !important;
}

.site-mainouter--with-banner #nav_block {
    position: relative;
    z-index: 4;
    padding-top: 8px;
    border: 0;
    /*
     * 注意：背景必须是不透明色！
     * mainouter 底色是纯白 rgb(255,255,255)，如果这里继续用半透明渐变，
     * 冷白会透到这一层，与下面 #nav / userbar 的暖奶油形成对比，
     * 在横幅与导航栏交界处出现一条浅灰 / 冷白横条 (视觉上的 "突出")。
     * 改为全不透明的暖奶油渐变后，整段区域颜色一致，灰条消失。
     *
     * #nav 会用负 margin 向上覆盖这层；未被 #nav 覆盖到的顶部区域
     * 必须和 #nav 使用同一套底色，否则横幅下方会露出一条色差带。
     */
    background:
        linear-gradient(180deg, rgba(254, 251, 246, 0.55), rgba(254, 251, 246, 0) 22%),
        radial-gradient(circle at top center, rgba(242, 206, 153, 0.08), rgba(242, 206, 153, 0) 50%),
        linear-gradient(180deg, rgba(254, 251, 246, 0.98), rgba(250, 245, 237, 0.95));
    background-position: 0 -8px, center -8px, 0 -8px;
    border-radius: 16px 16px 0 0;
}

#nav {
    box-sizing: border-box;
    position: relative;
    isolation: isolate;
    width: 100%;
    max-width: none;
    margin: -16px auto 0;
    /*
     * 主导航是页面的"骨架线"，过去 8px/7px 的上下内边距 + 12px 字号让它
     * 看起来比下方加大后的个人信息栏还细弱；这里整体抬高一档，让 nav
     * 在视觉上稳压 userbar 一头，形成"导航 → 信息 → 内容"的清晰层次。
     */
    padding: 10px 14px 9px;
    border: 1px solid rgba(231, 215, 194, 0.9);
    border-bottom: 0;
    border-radius: 14px 14px 0 0;
    background:
        /* 顶部高光改成淡奶油色 (原来是 rgba(255,255,255,0.92) 冷白)，
           避免和下方 nav_block 暖奶油底色形成冷暖对比，
           在横幅 / 导航交界处看到 "白条"。
           整体浓度配合 #nav_block / userbar 一起降一档，
           让顶部"大暖块"褪到接近暖白。 */
        linear-gradient(180deg, rgba(254, 251, 246, 0.55), rgba(254, 251, 246, 0) 22%),
        radial-gradient(circle at top center, rgba(242, 206, 153, 0.08), rgba(242, 206, 153, 0) 50%),
        linear-gradient(180deg, rgba(254, 251, 246, 0.98), rgba(250, 245, 237, 0.95));
    backdrop-filter: blur(18px) saturate(150%);
    -webkit-backdrop-filter: blur(18px) saturate(150%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.88),
        inset 0 -1px 0 rgba(223, 205, 180, 0.42),
        0 5px 12px rgba(96, 70, 43, 0.04),
        0 14px 24px rgba(96, 70, 43, 0.025);
    overflow: hidden;
}

#nav::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    z-index: 0;
    height: 1px;
    background: linear-gradient(90deg, rgba(228, 190, 132, 0), rgba(228, 190, 132, 0.65), rgba(228, 190, 132, 0));
    opacity: 0.92;
    pointer-events: none;
}

#nav::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(90deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0) 14%, rgba(255, 255, 255, 0) 86%, rgba(255, 255, 255, 0.18)),
        linear-gradient(180deg, rgba(183, 144, 90, 0.04), rgba(183, 144, 90, 0));
    pointer-events: none;
}

#nav_block {
    padding-left: 0;
    padding-right: 0;
    padding-top: 8px;
    padding-bottom: 0;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-radius: 0;
    box-shadow: none;
}

#nav_block > table.main {
    width: 100% !important;
    min-width: 0 !important;
    /*
     * begin_main_frame() 输出的 <table class="main" width="1250"> 会被 17 个
     * inline-flex 菜单项的 min-content 撑到 1250+ 宽度，让 #mainmenu 自带的
     * overflow-x: auto 失效，进而把 #nav_block 撑大、和 banner 错位。
     * 加上 table-layout: fixed 强制按声明宽度渲染，菜单超长时由 #mainmenu
     * 自身横向滚动，外框始终保持 100%。
     */
    table-layout: fixed !important;
}

#nav_block > table.main > tbody > tr > td.embedded {
    min-width: 0 !important;
    width: 100% !important;
    overflow: hidden;
}

#nav_block > table.main > tbody > tr > td.embedded > #nav {
    min-width: 0 !important;
    max-width: 100% !important;
}

#mainmenu.menu {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    /* 菜单项加宽后稍微拉开间距，避免相邻项贴住 */
    gap: 6px;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 1px 2px;
    list-style: none;
    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
    scrollbar-color: rgba(197, 166, 122, 0.42) transparent;
}

/* 主导航对齐方式：用户偏好 site.nav.align。
 *   - center (默认) justify-content: center，菜单居中（整页视觉中轴对齐）
 *   - left           justify-content: flex-start，菜单靠左
 *   - right          justify-content: flex-end，菜单靠右
 * 选择器 body.site-nav-align-{left,right} + #mainmenu.menu 特异度 (1,2,0)
 * 优于默认的 (1,1,0)，稳定覆盖。 */
body.site-nav-align-left #mainmenu.menu {
    justify-content: flex-start;
}

body.site-nav-align-right #mainmenu.menu {
    justify-content: flex-end;
}

.site-quick-search {
    box-sizing: border-box;
    position: relative;
}

.site-quick-search:focus-within,
.site-quick-search--hot-open {
    z-index: 1202;
}

.site-quick-search__wrap {
    box-sizing: border-box;
    position: relative;
    display: block;
    width: 100%;
    height: 30px;
    margin: 0;
}

.site-quick-search__input {
    box-sizing: border-box;
    width: 100%;
    height: 30px;
    padding: 0 10px 0 32px;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.74);
    color: #5a4630;
    font-size: 12px;
    line-height: 30px;
    outline: none;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.36),
        0 1px 2px rgba(96, 70, 43, 0.032);
    transition: border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}

.site-quick-search__input:focus {
    background: rgba(255, 255, 255, 0.96);
    box-shadow:
        0 0 0 3px rgba(229, 164, 79, 0.12),
        0 2px 6px rgba(96, 70, 43, 0.07),
        inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

.site-quick-search__input::placeholder {
    color: #ad9c87;
}

.site-quick-search__submit {
    appearance: none;
    -webkit-appearance: none;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 31px;
    height: 30px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #9f8765;
    cursor: pointer;
}

.site-quick-search__submit:hover,
.site-quick-search__submit:focus {
    color: #744b1c;
    outline: none;
}

.site-quick-search__submit i {
    font-size: 12px;
    line-height: 1;
}

.site-quick-search__hot {
    box-sizing: border-box;
    position: absolute;
    top: calc(100% + 7px);
    left: 0;
    z-index: 1203;
    display: none;
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(224, 208, 188, 0.92);
    border-radius: 15px;
    background: linear-gradient(180deg, rgb(255, 255, 255) 0%, rgb(252, 249, 244) 100%);
    box-shadow: 0 18px 40px rgba(44, 32, 20, 0.16), 0 6px 14px rgba(44, 32, 20, 0.08);
}

.site-quick-search__hot--portal {
    position: fixed;
    z-index: 10001;
    display: block;
}

.site-quick-search:focus-within .site-quick-search__hot,
.site-quick-search--hot-open .site-quick-search__hot {
    display: block;
}

.site-quick-search__hot-title {
    margin-bottom: 7px;
    color: #6f5b43;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
}

.site-quick-search__hot-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.site-quick-search__hot-links a {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 10px;
    border: 1px solid #e1dbd1;
    border-radius: 999px;
    background: #faf8f5;
    color: #725d44;
    font-size: 11px;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}

.site-quick-search__hot-links a:link,
.site-quick-search__hot-links a:visited {
    color: #725d44;
    text-decoration: none;
}

.site-quick-search__hot-links a:hover,
.site-quick-search__hot-links a:focus {
    border-color: #d2b083;
    background: #fff4e5;
    color: #9b5910;
    text-decoration: none;
}

.site-quick-search--userbar .site-quick-search__wrap {
    height: 32px;
}

.site-quick-search--userbar .site-quick-search__input {
    height: 32px;
    line-height: 32px;
    background: rgba(255, 255, 255, 0.72);
}

.site-quick-search--userbar .site-quick-search__submit {
    height: 32px;
}

#mainmenu.menu::-webkit-scrollbar {
    height: 5px;
}

#mainmenu.menu::-webkit-scrollbar-thumb {
    background: rgba(197, 166, 122, 0.42);
    border-radius: 999px;
}

#mainmenu.menu li {
    display: block;
    margin: 0;
}

#mainmenu.menu li a {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* 菜单项整体放大：高度 30 → 36，字号 12 → 14，左右内边距 12 → 14。
     * 让"首页 / 论坛 / 影视…" 这些一级入口在视觉上和下方个人信息栏的
     * 数据/按钮拉开层级（nav 14px 主导，userbar 11~13px 次之）。 */
    min-height: 36px;
    padding: 0 14px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #806143;
    font-size: 14px;
    font-weight: 650;
    line-height: 1;
    /*
     * 后端模板里两字菜单是 "首 页"、"影 &nbsp; 视" 这种带空格写法，
     * 直接渲染会让 "首" 和 "页" 之间出现一个尴尬的大空隙。
     * 这里用 word-spacing 负值把空格视觉上压回去，
     * 同时给所有汉字加 0.06em 的 letter-spacing，让 "认领种子" 这类
     * 三、四字的菜单项也保持一致的字间呼吸感。
     */
    letter-spacing: 0.06em;
    word-spacing: -0.45em;
    text-decoration: none;
    box-shadow: none;
    transition: transform 0.18s ease, border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

#mainmenu.menu li a:hover,
#mainmenu.menu li a:focus {
    color: #6f3a00;
    text-decoration: none;
    background: rgba(244, 232, 213, 0.32);
    box-shadow: none;
    transform: translateY(-1px);
}

#mainmenu.menu li.selected a,
#mainmenu.menu li.selected a:hover,
#mainmenu.menu li.selected a:focus {
    color: #7f4f1d;
    font-weight: 700;
    background: rgba(244, 232, 213, 0.5);
    box-shadow: none;
}

#mainmenu.menu li.selected a::after {
    content: "";
    position: absolute;
    /* 菜单项加宽后，选中下划线两端同步外推，比例保持一致 */
    left: 12px;
    right: 12px;
    bottom: 3px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, rgba(214, 158, 72, 0), rgba(214, 158, 72, 0.95), rgba(214, 158, 72, 0));
}

/*
 * 隐藏 ddlevelsmenu.js 注入的 arrow-down.gif（默认是 11×7 的实心黑三角，
 * 颜色发死、与字体不在同一渲染管线，看着廉价）。
 * 改为用 CSS 伪元素绘制更轻的小箭头：
 *   - 用 unicode ▾，字号 0.7em，颜色降到暖灰；
 *   - 与文字之间补 6px 间距；
 *   - 选中态/hover 态时三角颜色加深，与下划线/文字反馈同步；
 *   - 注意 ::after 与 .selected ::after（下划线）共存：原下划线规则继续生效，
 *     CSS 伪元素的小三角通过 :not(.selected) 限定避免和下划线打架；选中态下
 *     单独再给一条规则把三角放到下划线之上的合适位置。
 */
#mainmenu.menu li a img.downarrowpointer,
#mainmenu.menu li a img.rightarrowpointer {
    display: none !important;
}

#mainmenu.menu li a[rel^="ddsubmenu"]::before {
    content: "\25BE"; /* ▾ U+25BE BLACK DOWN-POINTING SMALL TRIANGLE */
    display: inline-block;
    margin-left: 6px;
    order: 2; /* 因为 a 是 inline-flex，order 让伪元素跟在文字后面 */
    color: #b89568;
    /* 0.72em 时部分字体里 ▾ 的字形只剩一道横线，看着像连字符；
     * 0.85em + 600 字重让三角的 "V" 形结构清晰可辨。 */
    font-size: 0.85em;
    font-weight: 600;
    line-height: 1;
    transform: translateY(1px);
    transition: color 0.18s ease, transform 0.18s ease;
    pointer-events: none;
}

/* 由于 li.selected a::after 已用作下划线，这里把三角放进 ::before（order:2 改成 -1 的反向），
 * 实际显示顺序由 flex 渲染：order 大的靠后。文字默认 order:0，::before 的 order:2 会被移到末尾。 */
#mainmenu.menu li a[rel^="ddsubmenu"]:hover::before,
#mainmenu.menu li a[rel^="ddsubmenu"]:focus::before,
#mainmenu.menu li.selected a[rel^="ddsubmenu"]::before {
    color: #8a5b22;
    transform: translateY(2px);
}

/*
 * 主导航的二级 / 三级下拉浮层。
 * 基础 CSS（ddlevelsmenu-base.css）给：
 *   - .ddsubmenustyle, .ddsubmenustyle div  { border:1px solid black } —— 浮层边框
 *   - .ddsubmenustyle li a                  { border-bottom:1px solid black } —— 每项分割线
 * 这两条都不带 !important，但都在每个 a 上无差别加底边，导致最后一项也带一根线，
 * 直观看起来浮层底部多了一条多余的横线。这里整体重写：
 *   1. 浮层用与首页 .index-card 同族的"半透明白底 + 磨砂玻璃 + 冷灰蓝细描边
 *      + 冷调柔投影"，与全站卡片体系保持一致；不再用更重的暖奶油底，避免
 *      在窄小的浮层尺寸上显得过厚、过暖、与下方页面卡片错位。
 *   2. 去掉所有逐项的横分割线，靠 4px 内边距的呼吸感来区分项目；
 *   3. hover 用胶囊型暖米色底 + 4px 圆角，配 2px 左侧暖金 accent，
 *      与全站暖文字 / 暖图标语言衔接；
 *   4. 用 CSS 把 "全 部 / M V" 这类硬塞空格的项压回去；
 *   5. 隐藏 JS 注入的 arrow-right.gif，对有三级菜单的项追加 ›（U+203A）作指示。
 *
 * 设计参考：template/css/index.css 的 .index-card —— 全站浮空容器都用同一种
 *   半透明白 + 蓝灰描边 + 冷投影 + backdrop-filter 的"漂浮卡"语言。dropdown
 *   是这类卡的最小尺寸版本，沿用同一族即可。
 */
.ddsubmenustyle,
.ddsubmenustyle div {
    border: 1px solid rgba(220, 227, 236, 0.82) !important;
    border-radius: 12px !important;
    /* 比 .index-card (rgba(255,255,255,.74)) 更不透明：dropdown 经常浮在
     * 横幅大图正上方，需要更稳的底色保证文字可读。 */
    background: rgba(255, 255, 255, 0.92) !important;
    backdrop-filter: blur(18px) saturate(1.1) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.1) !important;
    /* 冷灰蓝投影（rgba(49,66,96,*)) 与 .index-card 同色族；强度比 index-card
     * 略高一档，反映 dropdown 处于更高的浮层层级。 */
    box-shadow:
        0 14px 32px rgba(49, 66, 96, 0.12),
        0 4px 10px rgba(49, 66, 96, 0.06),
        inset 0 1px 0 rgba(255, 255, 255, 0.7) !important;
    /* 浮层外圈裁切，确保 hover 高亮不会越过圆角边界 */
    overflow: hidden;
    /* 给 li 一点呼吸的内边距，告别"贴边贴满"的电子表格感 */
    padding: 6px !important;
}

/* 内嵌的 ul 不再额外加 padding，避免与浮层容器叠出不均匀留白 */
.ddsubmenustyle ul {
    left: 6px !important;
    top: 6px !important;
    padding: 0 !important;
    border-radius: 12px !important;
}

.ddsubmenustyle li {
    margin: 0 !important;
}

.ddsubmenustyle li + li {
    margin-top: 2px !important;
}

.ddsubmenustyle li a {
    display: block;
    width: auto;
    min-width: 132px;
    margin: 0;
    padding: 7px 14px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    color: #795532 !important;
    font-size: 13px;
    line-height: 1.35;
    white-space: nowrap;
    text-decoration: none;
    /* 用同样的 word/letter-spacing 技巧把 "全&nbsp;&nbsp;部" 压回去 */
    letter-spacing: 0.04em;
    word-spacing: -0.4em;
    transition: background-color 0.16s ease, color 0.16s ease, padding-left 0.16s ease, box-shadow 0.16s ease;
    position: relative;
}

.ddsubmenustyle li:hover > a,
.ddsubmenustyle li a:hover,
.ddsubmenustyle li a:focus {
    /* 选中行改用暖米色，贴合页面的奶油底与棕金文字体系。 */
    background: linear-gradient(90deg, rgba(246, 235, 218, 0.96), rgba(250, 244, 234, 0.92)) !important;
    color: #6b3e13 !important;
    padding-left: 16px !important;
    box-shadow:
        inset 0 0 0 1px rgba(218, 193, 154, 0.68),
        0 2px 6px rgba(96, 70, 43, 0.06);
}

/* 左侧 3px 高光条作为选中行的方向锚点 */
.ddsubmenustyle li a::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 50%;
    width: 3px;
    height: 0;
    border-radius: 999px;
    background: linear-gradient(180deg, #d5a35b, #a96f2a);
    transform: translateY(-50%);
    transition: height 0.16s ease, opacity 0.16s ease;
    opacity: 0;
}

.ddsubmenustyle li:hover > a::before,
.ddsubmenustyle li a:hover::before,
.ddsubmenustyle li a:focus::before {
    height: 62%;
    opacity: 1;
}

/* 隐藏 JS 注入的 arrow-right.gif（三级菜单指示符），改用 CSS 绘制更精致的小箭头 */
.ddsubmenustyle li a img.rightarrowpointer {
    display: none !important;
}

/* 给"有三级菜单"的项追加 › 角标。初始化前是相邻 ul，ddlevelsmenu 初始化后会被包进 div。 */
.ddsubmenustyle li > a:has(+ ul)::after,
.ddsubmenustyle li > a:has(+ div)::after {
    content: "\203A"; /* › U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */
    position: absolute;
    right: 10px;
    top: 50%;
    color: #b89568;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    transform: translateY(-50%);
    transition: color 0.16s ease, transform 0.16s ease;
    pointer-events: none;
}

.ddsubmenustyle li:hover > a:has(+ ul)::after,
.ddsubmenustyle li:hover > a:has(+ div)::after,
.ddsubmenustyle li > a:has(+ ul):hover::after,
.ddsubmenustyle li > a:has(+ div):hover::after,
.ddsubmenustyle li > a:has(+ ul):focus::after,
.ddsubmenustyle li > a:has(+ div):focus::after {
    color: #8a5b22;
    transform: translateY(-50%) translateX(2px);
}

#info_block > tbody > tr > td > table > tbody > tr > td.bottom[align="right"] {
    display: none;
}

#info_block > tbody > tr > td > table > tbody > tr > td.bottom[align="left"] {
    position: relative;
    z-index: 150;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

#info_block > tbody > tr > td > table > tbody > tr > td.bottom[align="left"]:focus-within,
#info_block > tbody > tr > td > table > tbody > tr > td.bottom[align="left"]:has(.site-quick-search--hot-open) {
    z-index: 1200;
}

#info_block,
#info_block > tbody > tr > td,
#info_block > tbody > tr > td > table,
#info_block > tbody > tr > td > table > tbody > tr,
#info_block > tbody > tr > td > table > tbody > tr > td {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

#info_block {
    border-collapse: collapse;
    border-spacing: 0;
    margin: 0;
}

.site-userbar {
    position: relative;
    z-index: 220;
    width: 100%;
    max-width: none;
    margin: -3px auto -2px;
    padding: 0;
}

.site-userbar:focus-within,
.site-userbar:has(.site-quick-search--hot-open) {
    z-index: 1201;
}

.site-userbar__surface {
    box-sizing: border-box;
    position: relative;
    border: 0;
    border-radius: 0;
    /*
     * 原来的纯白 (#fcfbf9) 与上方 #nav 暖奶油 / 下方页面内容白底
     * 都接不顺，会在 #nav 之下显出一段冷白横条。
     *
     * 现在的渐变策略（方案 1 + 方案 2 叠加后）：
     *   顶端 0% 仍贴合 #nav 底色 rgb(251, 247, 240)，避免冷白条；
     *   但 14% 处就已经接近白 rgb(255, 254, 252)，
     *   30% 之后整段固定为接近纯白 rgb(255, 254, 253)，
     *   让 userbar 大约 70% 的高度（用户名 / 数据 / 签到/收件箱 那一行）
     *   都坐在"近白"上，只剩顶部一条 ~14px 的暖色衔接带做色温过渡。
     *   叠在最上的白色高光 (alpha 0.55→0 @ 25%) 帮助把暖色再压一档，
     *   让暖区面积从原来的 ~280px 缩到 ~14px。
     */
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0) 25%),
        linear-gradient(180deg,
            rgb(251, 247, 240) 0%,
            rgb(255, 254, 252) 14%,
            rgb(255, 254, 253) 30%,
            rgb(255, 255, 254) 100%);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.55),
        inset 1px 0 0 rgba(231, 215, 194, 0.55),
        inset -1px 0 0 rgba(231, 215, 194, 0.55),
        inset 0 -1px 0 rgba(223, 205, 180, 0.28);
    overflow: visible;
}

.site-userbar__surface::before {
    content: none;
    position: absolute;
    inset: 0 18px auto;
    height: 1px;
    background: linear-gradient(90deg, rgba(221, 174, 104, 0), rgba(221, 174, 104, 0.72), rgba(221, 174, 104, 0));
    pointer-events: none;
}

.site-userbar__surface::after {
    content: none;
    position: absolute;
    left: -1px;
    right: -1px;
    bottom: -1px;
    height: 14px;
    border-radius: 0;
    background: linear-gradient(180deg, rgba(250, 246, 241, 0.99), rgba(248, 243, 237, 0.99));
    pointer-events: none;
}

.site-userbar__compact {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    /* 行间距 6 → 8，与放大后的数据/按钮高度匹配；
     * 左右内边距与上方 #nav 14px 对齐，整段视觉宽度一致。 */
    gap: 8px 10px;
    padding: 10px 14px;
}

.site-userbar__compact--quick-search-left {
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(260px, 340px) minmax(max-content, 1fr);
    align-items: center;
    column-gap: 10px;
}

.site-userbar__compact-showcase,
.site-userbar__compact-data,
.site-userbar__compact-actions {
    min-width: 0;
    border-radius: 0;
    background: transparent;
}

.site-userbar__compact-showcase {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.site-userbar__compact--quick-search-left .site-userbar__compact-showcase {
    grid-column: 1;
    width: auto;
}

.site-userbar__compact--quick-search-left .site-userbar__compact-actions {
    grid-column: 3;
    justify-self: end;
    width: auto;
    margin-left: 0;
}

.site-userbar__quick-search {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 4;
    width: min(340px, 30vw);
    transform: translate(-50%, -50%);
}

.site-userbar__quick-search:focus-within,
.site-userbar__quick-search:has(.site-quick-search--hot-open) {
    z-index: 1202;
}

.site-userbar__quick-search--left {
    position: static;
    grid-column: 2;
    width: 100%;
    min-width: 0;
    transform: none;
}

.site-userbar__quick-search--center {
    left: 50%;
    transform: translate(-50%, -50%);
}

.site-userbar__profile {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
}

.site-userbar__avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    /* 头像尺寸与 nav 行高 (~36px) + 用户名字号 (16px) 配合：
     * 42x42 大致等于"用户名 + 数据胶囊"两行的总高度，比例最舒服。 */
    width: 42px;
    height: 42px;
    overflow: hidden;
    border-radius: 12px;
    background: #f7f3ee;
    color: #64758c;
    box-shadow: 0 1px 3px rgba(74, 53, 36, 0.035);
    transition: box-shadow 0.18s ease, z-index 0.18s ease;
}

.site-userbar__avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
    transition: transform 0.24s cubic-bezier(0.22, 0.8, 0.25, 1), box-shadow 0.24s ease, width 0.24s ease, height 0.24s ease, opacity 0.2s ease;
}

.site-userbar__avatar.is-zoomed,
.torrent-uploader-preview__avatar.is-zoomed {
    overflow: visible;
    z-index: 30;
}

.site-userbar__avatar.is-zoomed img,
.torrent-uploader-preview__avatar.is-zoomed img {
    position: absolute;
    left: 50%;
    top: 50%;
    width: auto;
    height: auto;
    max-width: min(var(--avatar-zoom-width), 60vw);
    max-height: min(var(--avatar-zoom-height), 60vh);
    border-radius: 14px;
    object-fit: contain;
    background: #f7f3ee;
    box-shadow: 0 18px 38px rgba(31, 22, 16, 0.18);
    transform: translate(-50%, -50%);
    z-index: 31;
    animation: avatarZoomReveal 0.22s cubic-bezier(0.22, 0.8, 0.25, 1);
}

.site-userbar__compact-showcase-body {
    min-width: 0;
    display: flex;
    flex: 1 1 auto;
    /* 与新头像高度对齐 */
    min-height: 42px;
    align-items: center;
    flex-wrap: wrap;
    gap: 2px 8px;
    align-content: center;
}

.site-userbar__compact-kicker {
    display: none;
}

.site-userbar__compact-identity,
.site-userbar__compact-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    min-width: 0;
    gap: 3px 6px;
}

.site-userbar__compact-identity {
    flex: 1 1 auto;
    align-items: center;
    row-gap: 2px;
}

.site-userbar__name {
    color: #2f4056;
    /* 用户名是 userbar 的视觉锚点，比 nav 14px 大一档（16px）足以突出"我的身份"，
     * 又不会反过来压过主导航。 */
    font-size: 16px;
    font-weight: 800;
    line-height: 1.05;
    text-shadow: none;
}

.site-userbar__compact-meta {
    gap: 2px 6px;
    padding-top: 0;
}

.site-userbar__compact-meta-item {
    color: #8e8a84;
    font-size: 9px;
    font-weight: 500;
    line-height: 1.3;
    text-decoration: none;
}

.site-userbar__compact-meta-item:hover,
.site-userbar__compact-meta-item:focus {
    color: #2f5f9a;
    text-decoration: none;
}

.site-userbar__medals {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 3px 5px;
    min-height: 16px;
    overflow: visible;
}

.site-userbar__compact-identity .site-userbar__medals {
    min-height: 0;
    gap: 2px 3px;
    flex: 0 0 auto;
}

.site-userbar__compact-identity .site-userbar__medals .medalcontainer img {
    height: 12px !important;
}

.site-userbar__medals .medalcontainer {
    display: inline-flex;
    margin: 0;
    overflow: visible;
}

.site-userbar__medals .medalcontainer a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 999px;
    background: transparent;
    box-shadow: none;
    position: relative;
    overflow: visible;
    transform-origin: left center;
    transition: transform 0.24s cubic-bezier(0.22, 0.8, 0.25, 1), filter 0.18s ease, z-index 0.18s ease;
}

.site-userbar__medals .medalcontainer a:hover,
.site-userbar__medals .medalcontainer a:focus {
    filter: brightness(1.04);
}

.site-userbar__medals .medalcontainer img {
    display: block;
    width: auto;
    height: 13px !important;
    max-width: none !important;
    max-height: none !important;
    margin-left: 0 !important;
    filter: none;
    transition: transform 0.24s cubic-bezier(0.22, 0.8, 0.25, 1), box-shadow 0.24s ease, width 0.24s ease, height 0.24s ease, opacity 0.2s ease;
    transform-origin: center center;
    will-change: transform;
}

.site-userbar__medals .medalcontainer a.is-zoomed,
.torrent-uploader-preview__medals .medalcontainer a.is-zoomed {
    z-index: 32;
    transform: scale(var(--medal-zoom-scale, 1));
}

.site-userbar__medals .medalcontainer a.is-zoomed img,
.torrent-uploader-preview__medals .medalcontainer a.is-zoomed img {
    position: relative;
    box-shadow: 0 18px 38px rgba(31, 22, 16, 0.18);
    z-index: 33;
}

#enlarge-pic,
#enlarge-pic1 {
    display: none !important;
}


.site-userbar__quick-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 22px;
    padding: 0 7px;
    border: 1px solid rgba(235, 226, 215, 0.82);
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(248, 243, 236, 0.72));
    color: #7a6248;
    font-size: 9px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.site-userbar__quick-link:hover,
.site-userbar__quick-link:focus {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(245, 237, 226, 0.92));
    color: #8d4f13;
    text-decoration: none;
}

.site-userbar__quick-link--event {
    cursor: pointer;
}

.site-userbar__logout {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 22px;
    padding: 0 7px;
    border: 1px solid rgba(233, 217, 194, 0.84);
    border-radius: 6px;
    background: linear-gradient(180deg, rgba(255, 252, 247, 0.92), rgba(247, 236, 221, 0.82));
    color: #7c4b16;
    font-size: 9px;
    font-weight: 700;
    text-decoration: none;
}

.site-userbar__logout:hover,
.site-userbar__logout:focus {
    color: #7c4b16;
    text-decoration: none;
    background: linear-gradient(180deg, rgba(255, 252, 247, 0.98), rgba(245, 231, 212, 0.92));
}

.site-userbar__compact-data {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px 6px;
    margin-top: 1px;
    padding: 0;
}

.site-userbar__compact-identity .site-userbar__compact-data {
    flex: 1 1 auto;
    align-items: center;
    /* 数值之间的横向间距同步放大，避免放大字号后挤在一起 */
    gap: 4px 8px;
    margin-top: 0;
    min-width: 0;
}

.site-userbar__compact-identity .site-userbar__compact-metric {
    /* 个人信息栏数据胶囊：整体放大约 30%，让数字一眼能看清 */
    min-height: 22px;
    padding: 0 6px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #7a6248;
    font-size: 13px;
    font-weight: 650;
    gap: 5px;
}

.site-userbar__compact-identity .site-userbar__compact-metric i {
    /* 配套放大数据前的小图标 */
    font-size: 11px;
}

/*
 * 数据胶囊里"爆米花 / H&R"是真实链接（site-userbar__compact-metric--link），
 * 但默认与纯展示项长得一模一样，用户不知道哪些可点。
 * 这里给链接型胶囊补一个 hover 回灶状的暖底色 + 文字加深 + 指针游标，
 * 既不像按钮那么张扬，又能传递"我可以点"的信号。
 */
.site-userbar__compact-identity .site-userbar__compact-metric--link {
    position: relative;
    z-index: 2;
    cursor: pointer !important;
    pointer-events: auto;
    border-radius: 6px;
    transition: background-color 0.16s ease, color 0.16s ease;
}

.site-userbar__compact-identity .site-userbar__compact-metric--link i,
.site-userbar__compact-identity .site-userbar__compact-metric--link span {
    cursor: pointer !important;
}

.site-userbar__compact-identity .site-userbar__compact-metric--uploaded.site-userbar__compact-metric--link,
.site-userbar__compact-identity .site-userbar__compact-metric--downloaded.site-userbar__compact-metric--link {
    background: rgba(255, 255, 255, 0.48);
}

.site-userbar__compact-identity .site-userbar__compact-metric--link:hover,
.site-userbar__compact-identity .site-userbar__compact-metric--link:focus {
    color: #8b561f;
    background: rgba(244, 232, 213, 0.68);
    box-shadow: none;
    text-decoration: none;
}

.site-userbar__compact-identity .site-userbar__compact-metric--link:hover i,
.site-userbar__compact-identity .site-userbar__compact-metric--link:focus i {
    /* hover 时图标也回到与文字同色，强化"被点亮"的感觉 */
    color: inherit;
}

.site-userbar__compact-metric {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    min-height: 24px;
    padding: 0 8px;
    border: 1px solid rgba(241, 236, 229, 0.96);
    border-radius: 999px;
    background: #fdfbf9;
    color: #6d767f;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
    font-family: Inter, Roboto, "Segoe UI", Arial, sans-serif;
    box-shadow: none;
}

.site-userbar__compact-metric--link {
    color: inherit;
    text-decoration: none;
}

.site-userbar__compact-metric--link:hover,
.site-userbar__compact-metric--link:focus {
    color: #2f5f9a;
    text-decoration: none;
}

.site-userbar__compact-metric i {
    color: #b39d85;
    font-size: 9px;
    line-height: 1;
}

/*
 * 数据胶囊图标的语义色，统一降饱和度后再贴入暖奶油主调里：
 * - 蓝/绿/橙/金保留语义提示，但都拉到 35~45 的低饱和；
 * - 蓝灰系做为"信号 / 防护"等中性指标；
 * - 整组放一起不再"红绿蓝橙紫一锅烩"，与 nav / banner 的暖色基调更和谐。
 */
.site-userbar__compact-metric--ratio i {
    color: #6f8eba;
}

.site-userbar__compact-metric--uploaded i {
    color: #5e9d7b;
}

.site-userbar__compact-metric--downloaded i {
    color: #c08868;
}

.site-userbar__compact-metric--bonus i {
    color: #c4a256;
}

.site-userbar__compact-metric--seeding-bonus i {
    color: #7ea476;
}

.site-userbar__compact-metric--active i {
    color: #8590b3;
}

.site-userbar__compact-active-links {
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.site-userbar__compact-metric-inline-link {
    position: relative;
    z-index: 2;
    color: inherit;
    font: inherit;
    text-decoration: none;
    cursor: pointer !important;
    pointer-events: auto;
}

.site-userbar__compact-metric-inline-link:link,
.site-userbar__compact-metric-inline-link:visited {
    color: inherit;
    text-decoration: none;
}

.site-userbar__compact-metric-inline-link:hover,
.site-userbar__compact-metric-inline-link:focus {
    color: #8b561f;
    text-decoration: underline;
}

.site-userbar__compact-metric-inline-link--seeding:hover,
.site-userbar__compact-metric-inline-link--seeding:focus {
    color: #3f8566;
}

.site-userbar__compact-metric-inline-link--leeching:hover,
.site-userbar__compact-metric-inline-link--leeching:focus {
    color: #a86b49;
}

.site-userbar__compact-metric-inline-sep {
    color: rgba(122, 98, 72, 0.45);
}

.site-userbar__compact-metric--hr i {
    color: #9889b3;
}

.site-userbar__compact-actions {
    flex: 0 1 auto;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: nowrap;
    gap: 0;
    align-content: flex-start;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    margin-left: auto;
    align-self: center;
}

.site-userbar__compact-action-group {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: center;
    /* 同组按钮间距 4px；跨组的分隔通过下面的竖线 + margin 单独控制 */
    gap: 4px;
    width: auto;
}

.site-userbar__compact-action-group--staff {
    justify-content: flex-end;
    gap: 4px 6px;
    flex-wrap: wrap;
}

/*
 * 右侧按钮按语义分 3 组：
 *   组 1：签到（第 1 项）
 *   组 2：收件箱 + 发件箱（第 2、3 项）
 *   组 3：作弊 / 举报 / 站务 等 staff 入口（带 --staff 类）
 * 用绝对定位的 1px 竖线插在跨组的间隙里，既不占位也不破坏按钮自身圆角。
 *   - .site-userbar__compact-tool:nth-child(2)：组 1 → 组 2 的边界（收件箱左侧）
 *   - 非-staff + 第一个 --staff：组 2 → 组 3 的边界（第一个 staff 项左侧）
 */
.site-userbar__compact-tool:nth-child(2),
.site-userbar__compact-tool:not(.site-userbar__compact-tool--staff) + .site-userbar__compact-tool--staff {
    position: relative;
    margin-left: 12px;
}

.site-userbar__compact-tool:nth-child(2)::before,
.site-userbar__compact-tool:not(.site-userbar__compact-tool--staff) + .site-userbar__compact-tool--staff::before {
    content: "";
    position: absolute;
    left: -8px;
    top: 50%;
    width: 1px;
    height: 18px;
    /* 加深竖线对比度，让 "签到 | 收件箱 | 作弊" 三组分隔肉眼可辨 */
    background: linear-gradient(180deg, rgba(176, 152, 119, 0), rgba(176, 152, 119, 0.7) 30%, rgba(176, 152, 119, 0.7) 70%, rgba(176, 152, 119, 0));
    transform: translateY(-50%);
    pointer-events: none;
}

.site-userbar__compact-tool--staff {
    order: 10;
}

/*
 * Staff 入口（作弊 / 举报 / 站务）告警态：
 *   - 仅当对应业务存在 "未处理" 数据时才会附加 .site-userbar__compact-tool--staff-alert
 *   - 视觉处理刻意简单：只把图标染成醒目红色，按钮其它部分（label / 数字 / 背景）维持原样，
 *     避免在 userbar 这种高密度区域引入额外噪音。未处理数 / 总数仍通过 title / aria-label 暴露。
 */
/*
 * 用 !important 显式覆盖，与下方既有的 .site-userbar__compact-tool--has-unread i 一致；
 * 否则会被同文件后段的通用 .site-userbar__compact-tool i { color: #9aa3ad } 覆盖。
 * 颜色 #c85a4b 与"收件箱有未读"时保持一致（避免站内出现两套相近但不同的红）。
 */
.site-userbar__compact-tool--staff-alert i {
    color: #c85a4b !important;
}

a.site-userbar__compact-tool--staff-alert:hover i,
a.site-userbar__compact-tool--staff-alert:focus i {
    color: #a84638 !important;
}

.site-userbar__compact-tool {
    display: inline-flex;
    align-items: center;
    /* 右侧操作按钮（签到 / 收件箱 / 发件箱 / 作弊 / 举报 / 站务）：
     * 字号 12px、按钮高 28px，跟 nav (14px / 36px) 形成 ≈0.85 的等比缩放，
     * 视觉层次：nav > 用户名 > 数据 > 操作按钮，由强到弱过渡。 */
    gap: 4px;
    min-height: 28px;
    padding: 0 8px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #75808b;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    box-shadow: none;
    transition: transform 0.18s ease, border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.site-userbar__compact-tool--status {
    cursor: default;
}

/*
 * 今日已签：用淡绿色胶囊 + 深绿文字突显"打过卡"状态，
 * 同时在日历图标右下角叠一颗小绿点作为"对勾"，一眼能跟未签态区分开。
 */
/*
 * 去掉绿色胶囊底色与描边，仅保留文字 / 图标 / 角标的绿色调和图标右下角的小绿点，
 * 让按钮保持与右侧其他工具一致的"行内文字按钮"形态，避免 userbar 上多出一块色块。
 */
.site-userbar__compact-tool--attended {
    position: relative;
    background: transparent;
    color: #2f6f3d;
    box-shadow: none;
}

.site-userbar__compact-tool--attended i {
    color: #3f8a4f;
}

.site-userbar__compact-tool--attended strong {
    color: #2f6f3d;
}

.site-userbar__compact-tool--attended span {
    color: #5b8b66;
}

/*
 * 右侧操作按钮（收件箱/发件箱/作弊/举报/站务…）的 hover 状态。
 * 旧值用的是冷蓝（#2f5f9a 文字 + rgba(244,247,250) 蓝灰底），跟整条暖奶油的
 * userbar / nav 体系完全不搭。统一改为与下拉浮层 hover 一致的暖底色：
 *   - 背景：rgba(238, 220, 188, 0.85)，淡焦糖奶油
 *   - 文字：#6b3e13，深焦糖棕
 *   - 按钮里的图标 / 数字角标 hover 时也跟着变暖灰，不再保留默认冷灰
 */
a.site-userbar__compact-tool:hover,
a.site-userbar__compact-tool:focus {
    color: #6b3e13;
    text-decoration: none;
    background: rgba(238, 220, 188, 0.85);
    box-shadow: none;
    transform: none;
}

a.site-userbar__compact-tool:hover i,
a.site-userbar__compact-tool:focus i {
    color: #8a5b22;
}

a.site-userbar__compact-tool:hover .site-userbar__compact-tool-badge,
a.site-userbar__compact-tool:focus .site-userbar__compact-tool-badge,
a.site-userbar__compact-tool:hover span,
a.site-userbar__compact-tool:focus span {
    color: #8a5b22;
}

.site-userbar__compact-tool-badge {
    color: #9097a0;
    /* 收件箱 / 发件箱 等数字角标：略小于按钮文字，作为次级提示 */
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.site-userbar__compact-tool--has-unread {
    position: relative;
    color: #7b4720;
    background: transparent;
    box-shadow: none;
}

body.page-torrent-list .site-userbar__compact-tool.site-userbar__compact-tool--has-unread i {
    color: #c85a4b !important;
}

.site-userbar__compact-tool--has-unread strong {
    color: #7b4720;
}

.site-userbar__compact-tool-badge--unread {
    color: #b85f33;
    font-weight: 800;
}

/*
 * 收件箱按钮在有未读时的"心跳"动画。
 *
 * 站内不再把"你有 N 条新短讯"渲染成全宽红 banner（参见 functions.php ~3937），
 * 那条信息现在完全靠右上角的收件箱按钮承担。为了让"未读"这个状态在一片静态的
 * userbar 元素里仍然能在余光里被察觉，给按钮的 inbox 图标加一组清晰的双拍脉冲：
 *   - scale 1 → 1.45 → 1：单拍均匀缩放，放大与回落对称，
 *     是平稳的"一下一下"跳动，而不是双拍心跳
 *   - drop-shadow 0 → 12px rgba(#c85a4b, .9) → 0：
 *     贴着字形扩散红晕，让小图标在右上角更容易被注意到
 *   - 1.5s ease-in-out infinite：跳动明快有节奏，太慢会显得无力
 *
 * 早期版本曾用过双拍心跳（1.22 / .98 / 1.14），节奏不均匀；后来又一度
 * 放慢到 3s，实测过于缓慢无力，因此这里保持均匀单拍并把频率调快。
 *
 * 颜色 #c85a4b 与按钮图标 inline-style、徽章 --unread 色调统一，保证视觉一致。
 * filter:drop-shadow 比 box-shadow 更适合 FontAwesome 字形（贴着字形描边而不是
 * 包住整个 inline-block 的方框）。
 *
 * 尊重 prefers-reduced-motion：用户系统设了"减少动效"时直接静默。
 */
/*
 * 页脚版权 + 调试统计信息默认弱化。
 *
 * "(c) Audiences …" 与 "[page created in … MS / … db queries …]" 这类信息属于
 * 次要内容，常驻显示会分散注意力。这里默认降低不透明度并去色，鼠标移上去
 * （或键盘聚焦其中的链接）时再平滑恢复为正常显示。
 */
.site-footer-meta {
    opacity: 0.35;
    filter: grayscale(1);
    transition: opacity 0.25s ease, filter 0.25s ease;
}

.site-footer-meta:hover,
.site-footer-meta:focus-within {
    opacity: 1;
    filter: none;
}

@keyframes site-userbar-unread-pulse {
    0%, 100% {
        transform: scale(1);
        filter: drop-shadow(0 0 0 rgba(200, 90, 75, 0));
    }
    50% {
        transform: scale(1.45);
        filter: drop-shadow(0 0 12px rgba(200, 90, 75, 0.9));
    }
}

.site-userbar__compact-tool--has-unread i {
    display: inline-block;
    transform-origin: center;
    animation: site-userbar-unread-pulse 1.5s ease-in-out infinite;
    will-change: transform, filter;
}

@media (prefers-reduced-motion: reduce) {
    .site-userbar__compact-tool--has-unread i {
        animation: none;
    }
}

.site-userbar__compact-tool strong {
    color: inherit;
    font-size: inherit;
    font-weight: 600;
}

.site-userbar__compact-tool span {
    color: #89919a;
}

.site-userbar__quick-link i,
.site-userbar__compact-tool i,
.site-userbar__logout i {
    color: #9aa3ad;
    /* 按钮前的图标和按钮字号同号 (12px)，维持图文一致 */
    font-size: 12px;
    line-height: 1;
}

.site-userbar__quick-link span,
.site-userbar__logout span {
    line-height: 1.2;
}

.site-quick-search-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding-top: 30vh;
}

.site-quick-search-modal.is-open {
    display: flex;
}

.site-quick-search-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(38, 26, 14, 0.32);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.site-quick-search-modal__dialog {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: min(520px, calc(100vw - 48px));
    padding: 0;
    border: 0;
    background: transparent;
}

.site-quick-search-modal__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.site-quick-search-modal__title {
    color: #4f3924;
    font-size: 16px;
    font-weight: 800;
}

.site-quick-search-modal__close {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #9f8765;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.site-quick-search-modal__close:hover,
.site-quick-search-modal__close:focus {
    background: rgba(238, 220, 188, 0.72);
    color: #744b1c;
    outline: none;
}

.site-quick-search--modal .site-quick-search__wrap,
.site-quick-search--modal .site-quick-search__input,
.site-quick-search--modal .site-quick-search__submit {
    height: 42px;
}

.site-quick-search--modal .site-quick-search__input {
    padding-left: 42px;
    background: rgba(255, 255, 255, 0.96);
    font-size: 15px;
    line-height: 42px;
    box-shadow:
        0 18px 46px rgba(40, 30, 20, 0.22),
        0 0 0 1px rgba(224, 208, 188, 0.82),
        inset 0 1px 0 rgba(255, 255, 255, 0.74);
}

.site-quick-search--modal .site-quick-search__submit {
    width: 42px;
}

.site-quick-search--modal .site-quick-search__hot {
    width: 100%;
}

.site-quick-search-modal__hint {
    margin-top: 10px;
    color: #938371;
    font-size: 12px;
}

.site-userbar__status-strip {
    display: none;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 8px;
    padding: 3px 12px 2px;
    border-top: 1px solid rgba(238, 229, 218, 0.52);
    background: transparent;
}

.site-userbar__status-item,
.site-userbar__status-strip .site-userbar__quick-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 18px;
    padding: 0 3px;
    border-radius: 0;
    border: 0;
    background: transparent;
    color: #8a755f;
    font-size: 9px;
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
}

.site-userbar__status-item i,
.site-userbar__status-strip .site-userbar__quick-link i {
    color: #b1987b;
    font-size: 9px;
}

.site-userbar__status-item:hover,
.site-userbar__status-item:focus,
.site-userbar__status-strip .site-userbar__quick-link:hover,
.site-userbar__status-strip .site-userbar__quick-link:focus {
    color: #6f3a00;
    text-decoration: none;
    background: transparent;
}

body.page-torrent-list {
    /*
     * ============================================================
     * 全暖色家族闭环：杏头 + 米色家族 + 暖咖文字 + 暖金 hover
     * ============================================================
     * 历史背景：之前曾把这一组变量整体翻成 slate 冷色（A 方案），
     * 与翻页器 / toggle / hover 行的暖色家族产生了"暖框 + 冷字 + 蓝闪"
     * 的不和谐混搭。最终用户偏好定在"杏头 + 全暖闭环"，本组变量
     * 全部回到原暖色族。蓝/Stripe-blue 不再出现在任何稳态或 hover 上。
     */

    /* 行底色：从纯白 #ffffff 换成极淡中性雾白 #f9fafb，
     * 比纯白暗 ~2%，大面积铺开时不再刺眼；
     * 相比之前的暖米 #faf7f2，不会让整页"发黄"，
     * 仍和暖色家族的表头/hover 兼容（hover 保留暖米做反馈对比）。 */
    --torrent-page-surface: #f9fafb;
    --torrent-page-surface-soft: #f2f4f7;
    /* hover 行：仍走极淡暖米 #fdf6ea 同语言的 #f1ebdf，
     * 冷底 + 暖 hover 形成清晰反馈，不会"突然变性" */
    --torrent-page-surface-muted: #f0f2f5;
    /* 行间分隔线：alpha 从 0.085 提到 0.18，
     * 之前太弱在白底纯白行下行的边界看不清；提到 0.18 仍不刺眼，
     * 但行的"格栏感"重新建立 */
    --torrent-page-border: rgba(120, 128, 140, 0.16);

    /* 资源列表表头：中性浅灰蓝，衔接首页卡片标题区；暖色只留给排序状态。 */
    --torrent-page-head-start: rgba(255, 255, 255, 0.80);
    --torrent-page-head-end: rgba(246, 248, 251, 0.84);
    --torrent-page-head-fg: #4f5663;
    --torrent-page-head-fg-strong: #303845;

    /* 正文三档文字：暖咖家族 */
    --torrent-page-text: #5f4631;
    --torrent-page-text-strong: #342416;
    --torrent-page-text-muted: #927c66;
    /* 强调色：暖金家族（标题链接 hover、下载/Promotion hover、跳页箭头都走这套） */
    --torrent-page-accent: #a36a34;
    --torrent-page-accent-strong: #7d4c24;
    /* 行操作图标：暖灰，与文字 muted #927c66 同色族 */
    --torrent-page-icon: #96806a;
}

#otherCopiesModal.other-copies-modal--torrent-list {
    --torrent-page-surface: #f9fafb;
    --torrent-page-surface-soft: #f2f4f7;
    --torrent-page-surface-muted: #f0f2f5;
    --torrent-page-border: rgba(120, 128, 140, 0.16);
    --torrent-page-head-start: rgba(255, 255, 255, 0.80);
    --torrent-page-head-end: rgba(246, 248, 251, 0.84);
    --torrent-page-head-fg: #4f5663;
    --torrent-page-head-fg-strong: #303845;
    --torrent-page-text: #5f4631;
    --torrent-page-text-strong: #342416;
    --torrent-page-text-muted: #927c66;
    --torrent-page-accent: #a36a34;
    --torrent-page-accent-strong: #7d4c24;
    --torrent-page-icon: #96806a;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-summary {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2));
    margin: 0 auto 10px;
    color: var(--torrent-page-text-muted);
    font-size: 12px;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-summary__groups {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 7px;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-summary__chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px;
    border: 1px solid var(--torrent-page-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.68);
    color: var(--torrent-page-text);
    line-height: 1.35;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-summary__chip b {
    color: var(--torrent-page-accent-strong);
    font-weight: 600;
}

body.page-torrent-list #torrent-search-form,
body.page-torrent-list .torrent-search-box,
body.page-torrent-list .torrent-search-box__body-cell,
body.page-torrent-list .torrent-search-box__stack,
body.page-torrent-list .torrent-search-box__advanced,
body.page-torrent-list .torrent-search-box__advanced-panel {
    position: relative;
    z-index: 1;
}

/*
 * hero 必须比 advanced (z:1) 高一档，否则聚焦输入框时弹出的
 * .torrent-search-box__hot-search-section 会被 advanced-panel
 * 的半透明白底 + backdrop-filter blur 罩成"灰糊"。
 * 之前这块和 advanced 共用 z-index:1，DOM 顺序又决定 advanced
 * 后画，于是 advanced 实际盖在了 hero 之上。
 */
body.page-torrent-list .torrent-search-box__hero {
    position: relative;
    z-index: 3;
}

body.page-torrent-list #torrent-search-form {
    margin: 0;
    padding: 0;
    border: 0;
    box-shadow: none;
}

body.page-torrent-list .torrent-search-toolbar {
    display: grid;
    /*
     * 搜索表单（含搜索框 + 标签）→ 翻页之间的纵向间距。
     * 之前实测 ~43px（form 自带 user-agent margin-bottom + body-cell padding-bottom + 翻页自身 margin），
     * 视觉上"标签离翻页好远，翻页又紧贴表格"很不平衡。
     * 这里统一交由 grid-gap 控制为 14px，配合下面的 form/body-cell/pager margin/padding 归零。
     */
    gap: 14px;
    margin: 0;
    padding: 0;
    position: relative;
    isolation: isolate;
    z-index: 6;
    border-top: 0;
    box-shadow: none;
}

body.page-torrent-list .torrent-search-toolbar__pager {
    margin: 0;
    padding: 0;
}

body.page-torrent-list .torrent-search-box,
body.page-torrent-list .torrent-search-box__body-cell {
    /*
     * 默认 .torrent-search-box__body-cell 有 padding: 0 0 14px，
     * 会在标签云 → 翻页之间叠加 14px 的隐形空隙；
     * 整组间距改由外层 .torrent-search-toolbar 的 grid-gap 统一控制，这里清零。
     */
    margin: 0;
    padding: 0;
    border-top: 0;
    box-shadow: none;
}

body.page-torrent-list .torrent-search-box__stack {
    /*
     * stack 内部各项（hero / active-filters / advanced）在折叠态下虽然 max-height:0，
     * 但 grid-gap 仍会在三者之间各占 4px，累积出"看不见的"8px 拖尾。
     * 这里改成 0，并在 active-filters / advanced 真正展示时通过显式 margin-top 给回间距。
     */
    gap: 0;
}

body.page-torrent-list .torrent-search-box__hero {
    /*
     * 搜索框 → 下方标签云的间距：
     * 之前 8px + quick-tags 自身 padding-top，实测 ~21px 偏紧；
     * 改为 grid gap 12px（quick-tags padding-top 已在下方置 0），与翻页区 14px 对齐感觉协调。
     */
    gap: 12px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
}

/*
 * stack gap 已置 0，需要在以下两块"按需展示"的元素出现时显式补回与上方
 * hero（标签云）之间的视觉间距，否则它们紧贴标签云。
 * 数值与 hero gap (12px) 对齐，整组保持一致的呼吸感。
 */
body.page-torrent-list .torrent-search-box__active-filters:not(.is-collapsed) {
    margin-top: 12px;
}

body.page-torrent-list .torrent-search-box__active-filters:not(.is-collapsed) + .torrent-search-box__advanced.is-open,
body.page-torrent-list .torrent-search-box__hero + .torrent-search-box__advanced.is-open {
    margin-top: 12px;
}

body.page-torrent-list .torrent-search-box__quick-tags {
    padding-top: 0;
}

body.page-torrent-list .torrent-search-box__active-filters {
    gap: 6px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

body.page-torrent-list .torrent-search-box__active-filters-icon {
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
}

body.page-torrent-list .torrent-search-box__active-filters-clear.btn {
    height: 22px;
    padding: 0 8px;
    border-color: var(--torrent-page-border);
    /* 暖奶油 → 中性纯白 */
    background: rgba(255, 255, 255, 0.96);
    color: var(--torrent-page-text);
}

body.page-torrent-list .torrent-search-box__advanced.is-open {
    margin-top: 14px;
}

/*
 * 让"高级搜索"展开面板的左右边距与下方资源列表(.torrents-table)对齐。
 * .torrents-table 通过 width: calc(100% - 52px) 自带 26px 左右内缩；
 * 这里给高级搜索面板套用同一公式，保证两块视觉边线一致。
 * 仅在桌面 (>640px) 生效，移动端保持原 12px 内缩，避免双重内缩。
 */
@media (min-width: 641px) {
    body.page-torrent-list .torrent-search-box__advanced {
        width: calc(100% - (var(--site-content-inline-gap, 26px) * 2));
        margin-left: auto;
        margin-right: auto;
        box-sizing: border-box;
    }
}

body.page-torrent-list .torrent-search-box__advanced-panel {
    gap: 10px;
    padding: 12px 14px 14px;
    /* 暖米色描边，和 advanced-toggle.is-open 的米桃底同色族 */
    border: 1px solid rgba(223, 209, 193, 0.5);
    border-radius: 12px;
    background: rgba(255, 255, 253, 0.97);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 8px 20px rgba(75, 54, 34, 0.018);
}

body.page-torrent-list .torrent-search-box__advanced-layout {
    gap: 14px;
}

body.page-torrent-list .torrent-search-box__advanced-section {
    padding: 9px 11px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

body.page-torrent-list .torrent-search-box__advanced-section--fields {
    padding: 10px 12px;
    background: transparent;
}

body.page-torrent-list .torrent-search-box__advanced-section--tags {
    background: transparent;
}

.site-userbar__stat-value--danger {
    color: #b64934;
}

@media (max-width: 1320px) {
    .site-head.site-head--with-banner,
    .site-mainouter.site-mainouter--with-banner,
    table.mainouter {
        width: min(calc(100% - (var(--site-shell-side-gap) * 2)), var(--site-shell-max-width));
    }

    .site-hero-banner {
        /* 响应式下 overlap 也同步收窄到 16px，与 mainouter margin-top 对齐 */
        --site-hero-banner-overlap: 16px;
    }

    .site-mainouter.site-mainouter--with-banner {
        margin-top: -16px;
    }

    .site-userbar__compact {
        justify-content: flex-start;
        align-items: flex-start;
        gap: 12px;
    }

    .site-userbar__compact-data {
        width: 100%;
        padding: 0;
    }

    .site-userbar__compact-actions {
        width: 100%;
        justify-content: flex-start;
        align-items: flex-start;
        padding: 0;
    }

    .site-userbar__quick-search {
        position: static;
        width: min(420px, 100%);
        transform: none;
        order: 2;
    }

    .site-userbar__compact-action-group {
        justify-content: flex-start;
        flex-wrap: wrap;
    }

    .site-userbar__status-strip {
        justify-content: flex-start;
    }
}

@media (max-width: 1080px) {
    .site-userbar__compact {
        padding-left: 0;
        padding-right: 0;
    }
}

@media (max-width: 1080px) {
    .site-hero-banner {
        --site-hero-banner-height: clamp(160px, 24vw, 220px);
        /* 小屏下横幅更矮，overlap 也收窄；与 mainouter 自然继承的 -16px
         * 对齐即可（不再额外覆盖），图片保留的可见区域约为 banner 高度
         * 的 90%+，不会出现"一大片预留空白"的比例违和感。 */
    }

    .site-hero-banner__swiper {
        min-height: 0;
    }

    .site-hero-banner__image {
        height: 100%;
    }

    .site-hero-banner__pagination.swiper-pagination {
        right: 18px;
        left: auto;
        bottom: 10px;
    }

    .site-userbar {
        padding-left: 0;
        padding-right: 0;
    }

    #nav {
        margin-top: -8px;
        padding-left: 8px;
        padding-right: 8px;
    }

    .site-userbar__compact {
        padding-left: 8px;
        padding-right: 8px;
    }

    .site-userbar__status-strip {
        padding-left: 8px;
        padding-right: 8px;
    }
}

@media (max-width: 640px) {
    #nav {
        padding: 7px 7px 5px;
        border-radius: 8px 8px 0 0;
    }

    .site-userbar__surface {
        border-radius: 0 0 10px 10px;
    }

    .site-userbar__compact {
        padding: 7px;
    }

    .site-userbar__profile {
        gap: 9px;
    }

    .site-userbar__avatar {
        width: 34px;
        height: 34px;
        border-radius: 10px;
    }

    .site-userbar__medals .medalcontainer img {
        height: 12px !important;
    }

    .site-userbar__name {
        font-size: 15px;
    }

    .site-userbar__compact-showcase-body {
        min-height: 34px;
    }

    .site-userbar__compact-data {
        gap: 5px 7px;
    }

    .site-userbar__compact-actions,
    .site-userbar__compact-action-group {
        justify-content: flex-start;
    }

    .site-userbar__compact-actions {
        flex-wrap: wrap;
        padding-right: 0;
    }

    .site-userbar__compact-action-group {
        flex-wrap: wrap;
    }

    .site-userbar__status-strip {
        padding: 7px;
        gap: 5px 7px;
    }

}

@media (max-width: 520px) {
    .site-userbar__compact-data {
        gap: 6px 8px;
    }
}

.torrent-row-action-link--promotion:hover .torrent-row-action-icon--promotion,
.torrent-row-action-link--promotion:focus .torrent-row-action-icon--promotion {
    color: #8a7866;
}

.torrent-row-action-icon--promotion i {
    transform: rotate(32deg);
}

/*
 * 书签 / RSS 的已激活 vs 未激活区分度
 * ------------------------------------
 * 历史问题：active 和 inactive 之前都走暖色家族且明度接近
 *   bookmark: active #b56c1d / inactive #9b958e
 *   rss    : active #d56e18 / inactive #9b958e
 * 图标尺寸只有 ~14px，用户扫视时"灰棕 vs 焦糖棕"几乎看不出差异。
 *
 * 新方案：
 *  - inactive 统一沉到更"冷"的暖灰（保持语义：未激活=失色）
 *  - active 走高饱和品牌色 + 轻微光晕，两档拉开色相（金黄 vs 橙红）
 *    * bookmark active = #e3a627 金黄（"已收藏"用金星语义）
 *    * rss      active = #f26a1f 橙红（RSS 传统色）
 *  - 加 filter: drop-shadow 让激活图标"发光"，进一步脱离底色
 *
 * 特异度说明：同文件 L4516 附近存在
 *     body.page-torrent-list .torrent-row-action-icon { color: var(--torrent-page-icon); }
 * 特异度 (0,2,1)，会压过单 class 规则 (0,2,0)。这里用 body.page-torrent-list
 * 前缀把特异度拉到 (0,3,1) 胜过它；filter 不受其它规则影响，放这里即可。
 */
body.page-torrent-list .torrent-row-action-icon--bookmark.is-active {
    color: #e3a627;
    filter: drop-shadow(0 0 2px rgba(227, 166, 39, 0.45));
}

body.page-torrent-list .torrent-row-action-icon--bookmark.is-inactive {
    color: #b8b1a7;
}

body.page-torrent-list .torrent-row-action-icon--rss.is-active {
    color: #f26a1f;
    filter: drop-shadow(0 0 2px rgba(242, 106, 31, 0.4));
}

body.page-torrent-list .torrent-row-action-icon--rss.is-inactive {
    color: #b8b1a7;
}

.torrent-detail-action-icon--muted {
    color: #9b958e;
}

.torrent-detail-action-link--muted:hover .torrent-row-action-icon,
.torrent-detail-action-link--muted:focus .torrent-row-action-icon {
    color: #8a7866;
}

.site-pager {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 5px 7px;
    /*
     * 顶部翻页：上方间距交给 .torrent-search-toolbar 的 grid gap (12px) 控制，
     * 自身上下 margin 改 0；翻页 → 下面的资源列表保持 8px 的轻微间隔。
     * 底部翻页：与列表的 6px 上间距足够。
     */
    margin: 0 auto;
    text-align: center;
}

.site-pager--top {
    margin-bottom: 8px;
}

.site-pager--bottom {
    margin-top: 6px;
}

.site-pager__pages {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 4px;
}

.site-pager__pages {
    max-width: min(100%, 1040px);
    align-items: center;
}

.site-pager__jump {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 2px;
}

.site-pager__jump-label {
    color: #9f8a73;
    font-size: 10px;
    line-height: 1;
    white-space: nowrap;
}

.site-pager__jump-input {
    width: 46px;
    min-height: 26px;
    padding: 0 4px;
    border: 1px solid rgba(141, 93, 47, 0.16);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
    color: #7f5730;
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
}

.site-pager__jump-input:focus {
    outline: none;
    border-color: rgba(181, 108, 29, 0.26);
    box-shadow: 0 0 0 2px rgba(245, 190, 115, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.site-pager__jump-input::-webkit-outer-spin-button,
.site-pager__jump-input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.site-pager__jump-input[type=number] {
    -moz-appearance: textfield;
}

.site-pager__jump-button {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.site-pager__link,
.site-pager__link:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 26px;
    padding: 0 8px;
    border: 1px solid rgba(141, 93, 47, 0.18);
    border-radius: 999px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 237, 225, 0.95) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.92);
    color: #8d5d2f;
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, color 0.16s ease, background-color 0.16s ease;
}

.site-pager__link:hover,
.site-pager__link:focus {
    transform: translateY(-1px);
    border-color: rgba(181, 108, 29, 0.28);
    box-shadow: 0 8px 18px rgba(74, 53, 36, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.94);
    color: #6f3a00;
}

.site-pager__link--nav {
    min-width: 60px;
    padding-left: 7px;
    padding-right: 7px;
    font-size: 10px;
    font-weight: 500;
    color: #a59079;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(247, 241, 234, 0.9) 100%);
    border-color: rgba(141, 93, 47, 0.12);
}

.site-pager__link--page {
    min-width: 58px;
}

.site-pager__link--current,
.site-pager__link--current:visited,
.site-pager__link--current:hover,
.site-pager__link--current:focus {
    transform: none;
    border-color: rgba(204, 118, 46, 0.4);
    background: linear-gradient(180deg, #f6c67b 0%, #ef9b39 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.38), 0 8px 18px rgba(214, 128, 54, 0.16);
    color: #ffffff;
    cursor: default;
}

.site-pager__link--disabled,
.site-pager__link--disabled:visited,
.site-pager__link--disabled:hover,
.site-pager__link--disabled:focus {
    transform: none;
    border-style: dashed;
    border-color: rgba(141, 93, 47, 0.12);
    background: rgba(255, 255, 255, 0.72);
    box-shadow: none;
    color: #b4a796;
    cursor: default;
}

.site-pager__label {
    display: block;
    white-space: nowrap;
}

.site-pager__gap {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    color: #a49481;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
}

/* 通用内容列表分页变体。
 * 新页面通过 pager(..., ['variant' => 'content-list']) 输出
 * site-pager--content-list；site-pager--torrent-list 保留为历史兼容别名，
 * 两个 class 会同时输出，避免老页面样式回退。 */
.site-pager--torrent-list {
    gap: 10px 12px;
    margin: 20px auto;
    padding: 0;
}

.site-pager--torrent-list.site-pager--top {
    /*
     * 顶部翻页：上方间距交给 .torrent-search-toolbar 的 grid-gap (14px) 控制；
     * 下方与资源列表表格之间，原 2px 几乎贴住，调整为 12px 给一行视觉缓冲。
     */
    margin-top: 0;
    margin-bottom: 12px;
}

.site-pager--torrent-list.site-pager--bottom {
    margin-top: 18px;
    margin-bottom: 20px;
}

.site-pager--torrent-list .site-pager__pages {
    gap: 8px;
}

.site-pager--torrent-list .site-pager__jump {
    gap: 4px;
    margin-left: 6px;
    min-height: 30px;
    padding: 1px 3px 1px 8px;
    border: 1px solid rgba(230, 218, 203, 0.68);
    border-radius: 999px;
    background: rgba(255, 251, 247, 0.9);
}

.site-pager--torrent-list .site-pager__jump:focus-within {
    border-color: rgba(207, 174, 136, 0.38);
    background: rgba(255, 252, 249, 0.97);
}

/* 资源列表表头：中性浅灰蓝轻表头，在高密度列表上保留必要的边界感。 */
body.page-torrent-list #torrenttable-head td.colhead {
    background: linear-gradient(180deg, var(--torrent-page-head-start) 0%, var(--torrent-page-head-end) 100%);
    background-color: var(--torrent-page-head-end);
    border-top: 1px solid rgba(210, 221, 234, 0.34) !important;
    color: var(--torrent-page-head-fg);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.68),
        inset 0 -1px 0 rgba(210, 221, 234, 0.68);
}

#otherCopiesModal.other-copies-modal--torrent-list #torrenttable-head td.colhead {
    background: linear-gradient(180deg, var(--torrent-page-head-start) 0%, var(--torrent-page-head-end) 100%);
    background-color: var(--torrent-page-head-end);
    border-top: 1px solid rgba(210, 221, 234, 0.34) !important;
    color: var(--torrent-page-head-fg);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.68),
        inset 0 -1px 0 rgba(210, 221, 234, 0.68);
}

/*
 * 滚动表头悬浮层（JS 克隆方案）。
 *
 * 背景：曾尝试给 <td.colhead> / 整个 <tr> 直接 position: sticky，但祖先
 * 链里的 <td#outer> 被 overflow-x: auto 限定，根据 CSS 规范成了 sticky
 * 的滚动容器，于是表头只能粘在 td#outer 的顶边、随整页滚动一起被滚走。
 * 这层关系没法用 CSS 绕开，因此改用"克隆 + fixed 悬浮"的 JS 方案。
 *
 * 结构：JS 在 #torrenttable 外插一个 <div class="torrent-sticky-head">，
 * 内装克隆的 <table> + <tr#torrenttable-head>，根据滚动位置 show/hide，
 * 并实时同步各列宽度。视觉样式靠克隆节点自身复用原样式；下面只设浮层
 * 基本位置与层级。具体逻辑见 public/common.js。
 */
.torrent-sticky-head {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1200;
    display: none;
    pointer-events: none;
    /* 兜底背景必须不透明：浮层覆盖列表内容时，半透明表头会透出下方标题。 */
    background-color: rgb(246, 248, 251);
}
.torrent-sticky-head.is-visible {
    display: block;
}
/*
 * 浮层内部结构强制恢复为 table 布局。
 *
 * 背景：项目里存在一条规则 `table.mainouter > tbody > tr > td { display:
 * block }`（为了横向滚动），它虽然只选择 mainouter 链，但克隆表头时，若
 * 某些 tr / td 在克隆前已经被 inline style 或其他规则改成 block，克隆体
 * 就会带着非表格布局。强制用 !important 把浮层内的元素拉回标准表格显示，
 * 确保单元格横向铺开而不是纵向堆叠。
 */
.torrent-sticky-head table {
    display: table !important;
    margin: 0 auto !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    background: transparent !important;
    pointer-events: auto;
    table-layout: auto;
}
.torrent-sticky-head tbody {
    display: table-row-group !important;
}
.torrent-sticky-head tr {
    display: table-row !important;
}
.torrent-sticky-head td {
    display: table-cell !important;
    vertical-align: middle !important;
    /*
     * 原 <table id="torrenttable" cellpadding="5">，cellpadding 只对未覆盖
     * padding 的 td 起作用。项目里给 body.page-torrent-list #torrenttable td 设
     * 过一些特殊 padding，但全局没有对 td.colhead 做 padding 重置，所以原
     * 表头能被 cellpadding=5 撑开到正常行高。
     *
     * 克隆时用 createElement 新建的 table 没有这个 cellpadding 属性，加之
     * 浏览器某些版本下 cellpadding 属性只在 HTML 解析时读一次，运行时
     * setAttribute 不保证生效 —— 结果就是克隆 td 的 padding 是 0，行高
     * 缩到只有一行文字的高度。
     *
     * 这里显式给浮层 td 加 padding，复刻原表的视觉 cell 大小。
     */
    padding: 5px !important;
}
/*
 * 浮层内所有 <td.colhead> 强制背景（渐变 + 兜底色）。
 *
 * 原表头每格的背景由 body.page-torrent-list #torrenttable-head td.colhead 的
 * linear-gradient 提供。对浮层再画一次，并带 !important 压过任何可能从
 * .torrent-front-filter-panel td.colhead { background: transparent !important }
 * 之类作用域泄漏过来的规则。
 */
.torrent-sticky-head td.colhead {
    background: linear-gradient(180deg, rgb(255, 255, 255) 0%, rgb(246, 248, 251) 100%) !important;
    background-color: rgb(246, 248, 251) !important;
}
.torrent-sticky-head td.colhead.torrent-front-filter-head-cell {
    background: linear-gradient(180deg, rgb(255, 255, 255) 0%, rgb(246, 248, 251) 100%) !important;
    background-color: rgb(246, 248, 251) !important;
}
.torrent-sticky-head::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -4px;
    height: 4px;
    background: linear-gradient(180deg, rgba(49, 66, 96, 0.09), rgba(49, 66, 96, 0));
    pointer-events: none;
}

/*
 * 当前页筛选面板的标题栏从上面"列表表头"规则组里抽离 —— 让它跟随
 * .torrent-front-filter-panel td.colhead (torrents.css) 的米黄磨砂标题风格，
 * 以便与高级搜索 (.torrent-search-box__advanced-panel) 协调；而不是跟
 * 列表表头那套轻工具栏样式一致。色调 / 文字颜色在 torrents.css 中集中控制。
 */

body.page-torrent-list td.colhead.torrent-text-colhead,
body.page-torrent-list td.colhead .torrent-front-filter-head-link,
body.page-torrent-list td.colhead .torrent-front-filter-head-link:visited {
    /* "类型"列等列标题：用与表头主文字相同的 head-fg，
     * 颜色随主题（深底米白 / 浅底深字）跟着变 */
    color: var(--torrent-page-head-fg);
    font-weight: 600;
}

#otherCopiesModal.other-copies-modal--torrent-list td.colhead.torrent-text-colhead,
#otherCopiesModal.other-copies-modal--torrent-list td.colhead .torrent-front-filter-head-link,
#otherCopiesModal.other-copies-modal--torrent-list td.colhead .torrent-front-filter-head-link:visited {
    color: var(--torrent-page-head-fg);
    font-weight: 600;
}

body.page-torrent-list td.colhead .torrent-front-filter-head-link:hover,
body.page-torrent-list td.colhead .torrent-front-filter-head-link:focus,
body.page-torrent-list td.colhead .torrent-front-filter-head-link:active {
    color: var(--torrent-page-head-fg-strong);
}

#otherCopiesModal.other-copies-modal--torrent-list td.colhead .torrent-front-filter-head-link:hover,
#otherCopiesModal.other-copies-modal--torrent-list td.colhead .torrent-front-filter-head-link:focus,
#otherCopiesModal.other-copies-modal--torrent-list td.colhead .torrent-front-filter-head-link:active {
    color: var(--torrent-page-head-fg-strong);
}

#otherCopiesModal.other-copies-modal--torrent-list button.torrent-front-filter-head-link {
    background: transparent;
    border: 0;
    padding: 0;
    font: inherit;
    cursor: pointer;
}

#otherCopiesModal.other-copies-modal--torrent-list button.torrent-colhead-icon-link {
    background: transparent;
    border: 0;
    padding: 0;
    font: inherit;
    cursor: pointer;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-title-sort::after {
    content: "";
    display: inline-block;
    width: 0.9em;
    margin-left: 3px;
    text-align: left;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-title-sort.is-asc::after {
    content: "▲";
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-title-sort.is-desc::after {
    content: "▼";
}

/* 表头排序图标：默认中性灰，当前排序保留一点低饱和暖棕作为状态提示。 */
body.page-torrent-list .torrent-colhead-icon,
body.page-torrent-list .torrent-colhead-icon--seeders,
body.page-torrent-list .torrent-colhead-icon--leechers,
body.page-torrent-list .torrent-colhead-icon--snatched {
    color: #7f8996;
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon--seeders,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon--leechers,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon--snatched {
    color: #7f8996;
}

body.page-torrent-list .torrent-colhead-icon-link:hover .torrent-colhead-icon,
body.page-torrent-list .torrent-colhead-icon-link:focus .torrent-colhead-icon {
    color: var(--torrent-page-head-fg-strong);
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link:hover .torrent-colhead-icon,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link:focus .torrent-colhead-icon {
    color: var(--torrent-page-head-fg-strong);
}

body.page-torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon {
    color: #735638;
    background: rgba(157, 129, 96, 0.12);
    box-shadow: inset 0 0 0 1px rgba(157, 129, 96, 0.22);
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon {
    color: #735638;
    background: rgba(157, 129, 96, 0.12);
    box-shadow: inset 0 0 0 1px rgba(157, 129, 96, 0.22);
}

body.page-torrent-list .torrent-colhead-icon-link--active:hover .torrent-colhead-icon,
body.page-torrent-list .torrent-colhead-icon-link--active:focus .torrent-colhead-icon {
    background: rgba(157, 129, 96, 0.18);
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active:hover .torrent-colhead-icon,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active:focus .torrent-colhead-icon {
    background: rgba(157, 129, 96, 0.18);
}

body.page-torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--comments,
body.page-torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--time,
body.page-torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--size,
body.page-torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--uploader,
body.page-torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--seeders,
body.page-torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--leechers,
body.page-torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--snatched {
    color: #735638;
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--comments,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--time,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--size,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--uploader,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--seeders,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--leechers,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-colhead-icon-link--active .torrent-colhead-icon--snatched {
    color: #735638;
}

.site-pager--torrent-list .site-pager__jump-label {
    display: none;
}

.site-pager--torrent-list .site-pager__jump-input {
    width: 42px;
    min-height: 28px;
    padding: 0 4px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
    color: var(--torrent-page-text);
    font-size: 10px;
    font-weight: 600;
}

.site-pager--torrent-list .site-pager__jump-input:focus {
    outline: none;
    box-shadow: none;
}

.site-pager--torrent-list .site-pager__jump-button {
    position: static;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    margin: 0 0 0 2px;
    overflow: visible;
    clip: auto;
    white-space: normal;
    border: 1px solid var(--torrent-page-border);
    border-radius: 999px;
    background: var(--torrent-page-surface);
    /* 箭头默认色：原 Stripe-blue 显蓝 → 翻成与杏头同族的暖棕 #4a2a12，
     * 与表头主文字同语言，不再和蓝 accent 抢戏 */
    color: #4a2a12;
    cursor: pointer;
    transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.site-pager--torrent-list .site-pager__jump-button:hover,
.site-pager--torrent-list .site-pager__jump-button:focus {
    /* hover 回到暖米色族 */
    border-color: rgba(182, 132, 78, 0.34);
    background: #f3e4cf;
    color: #2a1408;
    transform: translateY(-1px);
}

.site-pager--torrent-list .site-pager__jump-button-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    line-height: 1;
}

.site-pager--torrent-list .site-pager__link,
.site-pager--torrent-list .site-pager__link:visited {
    min-height: 30px;
    padding: 0 12px;
    border-color: rgba(226, 214, 199, 0.9);
    background: var(--torrent-page-surface);
    box-shadow: none;
    color: var(--torrent-page-text-muted);
    font-size: 10px;
}

.site-pager--torrent-list a.site-pager__link:hover,
.site-pager--torrent-list a.site-pager__link:focus {
    transform: translateY(-1px);
    border-color: rgba(194, 160, 125, 0.42);
    background: #f5ece2;
    box-shadow: none;
    color: var(--torrent-page-text-strong);
}

.site-pager--torrent-list .site-pager__link--nav {
    min-width: 64px;
    padding-left: 8px;
    padding-right: 8px;
    background: var(--torrent-page-surface);
    color: var(--torrent-page-text-muted);
}

.site-pager--torrent-list .site-pager__link--page {
    min-width: 62px;
}

.site-pager--torrent-list .site-pager__link--current,
.site-pager--torrent-list .site-pager__link--current:visited,
.site-pager--torrent-list .site-pager__link--current:hover,
.site-pager--torrent-list .site-pager__link--current:focus {
    /* 当前页：保留最初的暖米奶油底 + 暖棕描边；
     * 唯一改动是文字色——原本走 var(--torrent-page-accent-strong) 在 A 方案下
     * 等于 Stripe-blue，与暖米底打架。改成与杏头同族的深暖棕 #2a1408，
     * 文字加粗保留"我是当前页"的层级 */
    border-color: rgba(189, 146, 95, 0.34);
    background: #f3e4cf;
    box-shadow: none;
    color: #2a1408;
    font-weight: 600;
    text-shadow: none;
}

.site-pager--torrent-list .site-pager__link--disabled,
.site-pager--torrent-list .site-pager__link--disabled:visited,
.site-pager--torrent-list .site-pager__link--disabled:hover,
.site-pager--torrent-list .site-pager__link--disabled:focus {
    border-color: rgba(141, 93, 47, 0.1);
    background: var(--torrent-page-surface-soft);
    color: #c1b3a2;
}

.site-pager--torrent-list .site-pager__gap {
    min-width: 18px;
    color: #ab9780;
    font-size: 12px;
}

@media (max-width: 900px) {
    .site-pager {
        gap: 4px 5px;
    }

    .site-pager__pages {
        gap: 4px;
    }

    .site-pager__link,
    .site-pager__link:visited {
        min-height: 24px;
        padding: 0 7px;
        font-size: 10px;
    }

    .site-pager__jump {
        gap: 3px;
    }

    .site-pager__jump-input {
        width: 42px;
        min-height: 24px;
        padding: 0 4px;
    }

    .site-pager__link--nav {
        min-width: 54px;
        padding-left: 6px;
        padding-right: 6px;
        font-size: 10px;
    }

    .site-pager__link--page {
        min-width: 52px;
    }

    .site-pager--torrent-list {
        gap: 8px 8px;
        margin: 18px auto;
        padding: 0;
    }

    .site-pager--torrent-list.site-pager--top {
        /*
         * 移动端：搜索表单 → 翻页之间的间距，原 18px 显得"标签和翻页脱节"。
         * 收紧到 6px，配合下方 12px 与表格的距离更协调。
         */
        margin-top: 6px;
        margin-bottom: 12px;
    }

    .site-pager--torrent-list.site-pager--bottom {
        margin-top: 16px;
        margin-bottom: 18px;
    }

    .site-pager--torrent-list .site-pager__pages {
        gap: 6px;
    }

    .site-pager--torrent-list .site-pager__link,
    .site-pager--torrent-list .site-pager__link:visited {
        min-height: 28px;
        padding: 0 10px;
        font-size: 10px;
    }

    .site-pager--torrent-list .site-pager__link--nav {
        min-width: 58px;
        padding-left: 7px;
        padding-right: 7px;
    }

    .site-pager--torrent-list .site-pager__link--page {
        min-width: 56px;
    }

    .site-pager--torrent-list .site-pager__jump {
        gap: 4px;
        margin-left: 4px;
        min-height: 28px;
        padding: 1px 3px 1px 6px;
    }

    .site-pager--torrent-list .site-pager__jump-input {
        width: 38px;
        min-height: 26px;
        font-size: 10px;
    }

    .site-pager--torrent-list .site-pager__jump-button {
        width: 26px;
        height: 26px;
    }
}

.site-float-nav {
    position: fixed;
    right: 8px;
    bottom: 12px;
    z-index: 1000;
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    user-select: none;
    -webkit-user-select: none;
    touch-action: manipulation;
}

.site-float-nav__button,
.site-float-nav__button:visited {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid #eee6dd;
    border-radius: 999px;
    background: #fdfcfb;
    box-shadow: none;
    color: #8a7a68;
    text-decoration: none;
    transition: transform 0.16s ease, border-color 0.16s ease, color 0.16s ease, background-color 0.16s ease, opacity 0.16s ease;
    cursor: pointer;
    -webkit-user-drag: none;
}

.site-float-nav__button:hover,
.site-float-nav__button:focus {
    transform: translateY(-1px);
    border-color: #ddc8b3;
    background: #f1e5da;
    color: #66492a;
}

.site-float-nav__button--top {
    border-color: #eee6dd;
    background: #fdfcfb;
    color: #8a7a68;
}

.site-float-nav__button--pager {
    background: #fdfcfb;
}

.site-float-nav__icon {
    display: block;
    font-size: 14px;
    line-height: 1;
}

.site-float-nav__button--pager .site-float-nav__icon {
    font-size: 16px;
}

.site-float-nav__button--top:hover,
.site-float-nav__button--top:focus {
    border-color: #d6b27d;
    background: #ecd6ae;
    color: #8b561f;
}

.site-float-nav__text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.site-float-nav__button.is-disabled,
.site-float-nav__button.is-disabled:visited,
.site-float-nav__button.is-disabled:hover,
.site-float-nav__button.is-disabled:focus {
    transform: none;
    border-color: rgba(141, 93, 47, 0.1);
    background: #f8f5f1;
    box-shadow: none;
    color: #c1b3a2;
    opacity: 0.82;
    cursor: default;
}

.site-float-nav__button.is-hidden {
    display: none;
}

.site-float-nav.is-dragging .site-float-nav__button,
.site-float-nav.is-dragging .site-float-nav__button:visited {
    cursor: grabbing;
    transition: none;
}

@media (max-width: 900px) {
    .site-float-nav {
        right: 6px;
        bottom: 10px;
        gap: 4px;
    }

    .site-float-nav__button,
    .site-float-nav__button:visited {
        width: 30px;
        height: 30px;
        border-radius: 999px;
    }

    .site-float-nav__icon {
        font-size: 13px;
    }

    .site-float-nav__button--pager .site-float-nav__icon {
        font-size: 14px;
    }
}

.torrents-table {
    --torrent-uploader-anonymous-width: 64px;
    --torrent-uploader-row-gap: 2px;
    width: calc(100% - 24px) !important;
    margin-left: auto;
    margin-right: auto;
}

body.page-torrent-list #torrenttable td.rowfollow {
    background-color: var(--torrent-page-surface);
    border-color: var(--torrent-page-border);
}

#otherCopiesModal.other-copies-modal--torrent-list #torrenttable td.rowfollow {
    background-color: var(--torrent-page-surface);
    border-color: var(--torrent-page-border);
}

body.page-torrent-list #torrenttable tr:hover td.rowfollow {
    background-color: var(--torrent-page-surface-muted);
}

#otherCopiesModal.other-copies-modal--torrent-list #torrenttable tr:hover td.rowfollow {
    background-color: var(--torrent-page-surface-muted);
}

#otherCopiesModal.other-copies-modal--torrent-list #torrenttable tr.other-copy-group-row:hover td.rowfollow {
    background-color: transparent;
}

#otherCopiesModal.other-copies-modal--torrent-list #torrenttable .other-copy-group-cell {
    padding: 14px 0 6px !important;
    background: transparent !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 31px;
    padding: 0 12px;
    border: 1px solid rgba(210, 221, 234, 0.52);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.86) 0%, rgba(246, 248, 251, 0.92) 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.66);
    color: var(--torrent-page-head-fg);
    font: inherit;
    cursor: pointer;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title::before,
#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title::after {
    content: "";
    height: 1px;
    background: linear-gradient(90deg, rgba(210, 221, 234, 0), rgba(120, 128, 140, 0.22));
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title::after {
    background: linear-gradient(90deg, rgba(120, 128, 140, 0.22), rgba(210, 221, 234, 0));
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title:hover,
#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title:focus {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(240, 242, 245, 0.98) 100%);
    color: var(--torrent-page-head-fg-strong);
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title__name {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    grid-column: 2;
    min-width: 120px;
    font-size: 13px;
    font-weight: 600;
    color: var(--torrent-page-head-fg-strong);
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title__arrow {
    display: inline-block;
    width: 12px;
    color: #7f8996;
    font-size: 11px;
    line-height: 1;
    text-align: center;
    transition: transform 0.16s ease;
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title.is-collapsed .other-copy-group-title__arrow {
    transform: rotate(-90deg);
}

#otherCopiesModal.other-copies-modal--torrent-list .other-copy-group-title__meta {
    grid-column: 2;
    justify-self: center;
    color: var(--torrent-page-text-muted);
    font-size: 11px;
    font-weight: 400;
    white-space: nowrap;
}

/*
 * 去掉种子列表表格的"竖向格线"。
 *
 * 背景：基础 theme.css 给全站 td 统一加了一圈 1px #ccc 边框（上下左右都画），
 * 在种子列表里每列之间就形成一道道细竖线，视觉噪音较重，且与整页柔和的暖色
 * 系不协调。
 *
 * 这里在 .page-torrent-list 作用域内把表头 / 行单元格的左右边框清掉，只保留
 * 上下横线（行与行之间仍由 colhead 的 box-shadow 与下方的横线分隔），让
 * 表格在横向上是"通透的条带"，列信息靠留白而非竖线分隔。
 *
 * 注意：只作用于种子列表页，全站其他表格（论坛、排行榜、管理面板）保持原样。
 */
body.page-torrent-list #torrenttable td,
body.page-torrent-list #torrenttable td.colhead,
body.page-torrent-list #torrenttable td.rowfollow {
    border-left: 0 !important;
    border-right: 0 !important;
}

#otherCopiesModal.other-copies-modal--torrent-list #torrenttable td,
#otherCopiesModal.other-copies-modal--torrent-list #torrenttable td.colhead,
#otherCopiesModal.other-copies-modal--torrent-list #torrenttable td.rowfollow {
    border-left: 0 !important;
    border-right: 0 !important;
}

body.page-torrent-list .torrents-name a,
body.page-torrent-list .torrents-name a:visited {
    /* 主标题：近纯黑 #050302（保留微量暖色底），在任何行背景下都是最高
     * 权重的"主信息"，最大化可读性。 */
    color: #050302;
}

#otherCopiesModal.other-copies-modal--torrent-list .torrents-name a,
#otherCopiesModal.other-copies-modal--torrent-list .torrents-name a:visited {
    color: #050302;
}

body.page-torrent-list .torrents-name .torrent-title-link,
body.page-torrent-list .torrents-name .torrent-title-link:visited {
    font-size: 12px;
    line-height: 1.45;
}

#otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-title-link,
#otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-title-link:visited {
    font-size: 12px;
    line-height: 1.45;
}

/* 主标题字号随"字体大小"偏好缩放。
 * small 对应 11px；large 对应 13px；
 * medium 维持 12px（默认不需要额外规则，只给 small/large 写覆盖即可）。
 * 选择器 (0,3,1) + body.site-font-XXX 追加一段 class 链，特异度高于 L3227
 * 的基础规则，稳定覆盖。 */
body.page-torrent-list.site-font-small .torrents-name .torrent-title-link,
body.page-torrent-list.site-font-small .torrents-name .torrent-title-link:visited {
    font-size: 11px;
}
body.page-torrent-list.site-font-large .torrents-name .torrent-title-link,
body.page-torrent-list.site-font-large .torrents-name .torrent-title-link:visited {
    font-size: 13px;
}
body.site-font-small #otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-title-link,
body.site-font-small #otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-title-link:visited {
    font-size: 11px;
}
body.site-font-large #otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-title-link,
body.site-font-large #otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-title-link:visited {
    font-size: 13px;
}

body.page-torrent-list .torrents-name a:hover,
body.page-torrent-list .torrents-name a:focus {
    /* hover 走暖金强档，与下载/Promotion hover 同语言 */
    color: var(--torrent-page-accent-strong);
}

#otherCopiesModal.other-copies-modal--torrent-list .torrents-name a:hover,
#otherCopiesModal.other-copies-modal--torrent-list .torrents-name a:focus {
    color: var(--torrent-page-accent-strong);
}

body.page-torrent-list .torrents-name .torrent-subtitle-text {
    display: inline-block;
    padding: 2px;
    line-height: 20px;
    /* 副标题：再深一档到 #1f120a，仅比主标题 #050302 浅一点以保留层级。
     * 相比最初的 #5f4631 亮度降了近 50%，副标题自身成为一个稳定可读的
     * "次级信息"，不再有"飘浮在背景上"的感觉。 */
    color: #1f120a;
}

#otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-subtitle-text {
    display: inline-block;
    padding: 2px;
    line-height: 20px;
    color: #1f120a;
}

/* 副标题行容器：标签"浮在左侧"，副标题文字走普通行内流，自然环绕。
 *
 * 为什么不是 flex？
 *   flex + min-width:0 + overflow-wrap:anywhere 会让浏览器
 *   把副标题列的 min-content 判定为"1 字符"，从而把整个标题列挤成一条竖列。
 *   float 方案没有这个副作用：float 元素不参与 min-content 推断，
 *   剩余文本流仍是正常 inline 文本，td 列宽保持不变。
 *
 * 效果：
 *   - 标签组 float:left → 永远停在这一行左侧第一个位置；
 *   - 副标题作为文本流绕开 float 盒子：
 *       · 只有一行时：紧贴标签右侧；
 *       · 溢出一行时：第二行起从 td 最左边开始，即"副标题左对齐"需求；
 *   - 容器末尾用 ::after 清 float，避免副标题短于一行时污染下一行布局。 */
body.page-torrent-list .torrents-name .torrent-subtitle-line {
    display: block;
    /* overflow: hidden 会让子元素被裁剪；用 clearfix 更安全 */
}
#otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-subtitle-line {
    display: block;
}
body.page-torrent-list .torrents-name .torrent-subtitle-line::after {
    content: "";
    display: block;
    clear: both;
}
#otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-subtitle-line::after {
    content: "";
    display: block;
    clear: both;
}

body.page-torrent-list .torrents-name .torrent-subtitle-line .torrent-subtitle-tags {
    float: left;
    margin-right: 4px;
    /* 标签本身的 .tags 已经有各自的外观，这里只负责把它们作为一个整体浮到左侧。
     * 不给 display:flex 之类，让标签彼此保持原 inline 排布。 */
}
#otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-subtitle-line .torrent-subtitle-tags {
    float: left;
    margin-right: 4px;
}

body.page-torrent-list .torrents-name .torrent-subtitle-line .torrent-subtitle-tags--tail {
    float: none;
    margin-left: 0;
    margin-right: 0;
}
#otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-subtitle-line .torrent-subtitle-tags--tail {
    float: none;
    margin-left: 0;
    margin-right: 0;
}

/* 副标题文本在 .torrent-subtitle-line 容器内必须是 inline（纯文本流），
 * 而不是默认的 inline-block：
 *   - inline-block 是一个"整体盒子"，当它跟 float 同一行放不下时会整体掉到下一行，
 *     表现为"标签在第一行，副标题在第二行"；
 *   - inline 文本会逐字符/逐单词环绕 float 框，短副标题可以紧贴标签右侧放下，
 *     长副标题溢出时第二行起回到容器最左边（即 td 最左），自动左对齐。
 * 此处 !important 压过上面 .torrent-subtitle-text 的 display:inline-block，
 * 只对"副标题行"内的副标题生效，不影响其它位置使用该 class 的副标题渲染。 */
body.page-torrent-list .torrents-name .torrent-subtitle-line .torrent-subtitle-text {
    display: inline !important;
    padding: 0;        /* inline 元素不支持上下 padding，清掉避免与父行高冲突 */
}

#otherCopiesModal.other-copies-modal--torrent-list .torrents-name .torrent-subtitle-line .torrent-subtitle-text {
    display: inline !important;
    padding: 0;
}

.torrent-uploader-col,
.torrent-uploader-colhead {
    width: 1%;
}

.torrent-uploader-col--anonymous {
    width: var(--torrent-uploader-anonymous-width);
    min-width: var(--torrent-uploader-anonymous-width);
}

.torrent-uploader-wrap {
    position: relative;
    display: inline-block;
    max-width: 100%;
    vertical-align: middle;
}

.torrent-uploader-cell {
    display: inline-block;
    max-width: 64px;
    overflow: hidden;
    text-align: left;
    vertical-align: middle;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.torrent-uploader-cell .nowrap {
    display: inline-flex;
    align-items: center;
    gap: var(--torrent-uploader-row-gap);
    max-width: 100%;
    min-width: 0;
    vertical-align: bottom;
}

.torrent-uploader-cell .nowrap > a {
    display: inline-block;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.torrent-uploader-cell .nowrap img {
    flex: 0 0 auto;
}

.torrent-uploader-cell--anonymous {
    display: grid;
    width: var(--torrent-uploader-anonymous-width);
    max-width: var(--torrent-uploader-anonymous-width);
    grid-template-columns: minmax(0, 1fr);
    gap: var(--torrent-uploader-row-gap);
    justify-items: center;
    text-align: center;
    white-space: normal;
}

.torrent-uploader-anonymous {
    display: block;
    max-width: 100%;
    line-height: 1.1;
}

.torrent-uploader-owner {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-align: center;
}

.torrent-uploader-owner-line {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    min-width: 0;
    white-space: nowrap;
}

.torrent-uploader-owner-paren {
    flex: 0 0 auto;
}

.torrent-uploader-owner-value {
    flex: 0 1 auto;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
}

.torrent-uploader-owner-value .nowrap {
    display: inline-flex;
    align-items: center;
    gap: var(--torrent-uploader-row-gap);
    max-width: 100%;
    min-width: 0;
}

.torrent-uploader-owner-value .nowrap > a {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.torrent-uploader-owner-value .nowrap img {
    flex: 0 0 auto;
}

.torrent-uploader-preview {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(4px) scale(0.98);
    transform-origin: center;
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s ease;
}

.torrent-uploader-preview.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.torrent-uploader-preview.is-measuring {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

.torrent-uploader-preview__card {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 18px;
    min-width: 352px;
    max-width: 398px;
    padding: 20px;
    border: 1px solid rgba(0, 0, 0, 0.05);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 24px 52px rgba(28, 22, 18, 0.075), 0 10px 24px rgba(28, 22, 18, 0.045), 0 2px 6px rgba(28, 22, 18, 0.035);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.torrent-uploader-preview__card::after {
    display: none;
}

.torrent-uploader-preview:hover .torrent-uploader-preview__card {
    transform: translateY(-4px);
    border-color: rgba(214, 123, 67, 0.1);
    box-shadow: 0 30px 60px rgba(28, 22, 18, 0.09), 0 12px 26px rgba(28, 22, 18, 0.05), 0 4px 10px rgba(28, 22, 18, 0.035);
}

.torrent-uploader-preview__content {
    min-width: 240px;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
}

.torrent-uploader-preview__aside {
    display: flex;
    flex: 0 0 auto;
    width: 72px;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding-top: 0;
}

.torrent-uploader-preview__header {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
    min-height: 72px;
    justify-content: center;
    padding-right: 4px;
    margin-bottom: 14px;
}

.torrent-uploader-preview__name-row {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    max-width: 100%;
}

.torrent-uploader-preview__avatar {
    display: inline-flex;
    flex: 0 0 auto;
    width: 72px;
    height: 72px;
    overflow: hidden;
    position: relative;
    z-index: 1;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: #f1e8dc;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.78);
    transition: box-shadow 0.18s ease;
}

.torrent-uploader-preview__avatar:hover {
    box-shadow: 0 10px 18px rgba(31, 22, 16, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.78);
}

.torrent-uploader-preview__avatar--default {
    color: #9b8665;
}

.torrent-uploader-preview__avatar img {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-position: center;
    transition: transform 0.24s cubic-bezier(0.22, 0.8, 0.25, 1), box-shadow 0.24s ease, width 0.24s ease, height 0.24s ease, opacity 0.2s ease;
}

.torrent-uploader-preview__avatar--placeholder img {
    transform: none;
}

@keyframes avatarZoomReveal {
    from {
        opacity: 0.25;
        transform: translate(-50%, -50%) scale(0.86);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

.torrent-uploader-preview__name {
    display: block;
    flex: 0 0 auto;
    max-width: 100%;
    min-width: 0;
    font-size: 20px;
    font-weight: 900;
    line-height: 1.05;
    color: #222;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.torrent-uploader-preview__name:hover,
.torrent-uploader-preview__name:focus {
    opacity: 0.92;
}

.torrent-uploader-preview__badge {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    max-width: 100%;
    padding: 5px 12px;
    border: 1px solid rgba(219, 151, 98, 0.1);
    border-radius: 999px;
    background: #fff9f3;
    color: #8f4d22;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: 0.02em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    position: relative;
    top: 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.torrent-uploader-preview__medals {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    min-width: 0;
    flex: 0 0 auto;
    overflow: visible;
}

.torrent-uploader-preview__medals .medalcontainer {
    display: inline-flex;
    margin: 0;
    overflow: visible;
}

.torrent-uploader-preview__medals .medalcontainer a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: visible;
    transform-origin: left center;
    transition: transform 0.24s cubic-bezier(0.22, 0.8, 0.25, 1), z-index 0.18s ease;
}

.torrent-uploader-preview__medals .medalcontainer img {
    display: block;
    width: auto;
    height: 16px !important;
    max-width: none !important;
    max-height: none !important;
    margin-left: 0 !important;
    transition: box-shadow 0.24s ease, opacity 0.2s ease;
    transform-origin: center center;
    will-change: transform;
}

#enlarge-pic {
    display: none !important;
}

.torrent-uploader-preview__badge--default {
    color: #8f4d22;
}

.torrent-uploader-preview__meta {
    color: #c3b6aa;
    font-size: 9px;
    line-height: 1.2;
    letter-spacing: 0.06em;
}

.torrent-uploader-preview__meta--primary {
    margin-top: 12px;
    text-align: left;
    white-space: nowrap;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
    font-variant-numeric: tabular-nums;
}

.torrent-uploader-preview__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px 12px;
}

.torrent-uploader-preview__stat {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-size: 12px;
    line-height: 1.35;
    padding: 10px 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border: 0;
    border-radius: 16px;
    background: #fbfaf7;
}

.torrent-uploader-preview__stat-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    font-size: 13px;
    color: #8a8a8a;
}

.torrent-uploader-preview__stat-icon i {
    display: block;
    width: 100%;
    text-align: center;
    opacity: 0.82;
}

.torrent-uploader-preview__stat--uploaded .torrent-uploader-preview__stat-icon {
    color: #5db88d;
}

.torrent-uploader-preview__stat--downloaded .torrent-uploader-preview__stat-icon {
    color: #d59461;
}

.torrent-uploader-preview__stat--bonus .torrent-uploader-preview__stat-icon {
    color: #caa33f;
}

.torrent-uploader-preview__stat--seeding-bonus .torrent-uploader-preview__stat-icon {
    color: #78aa6f;
}

.torrent-uploader-preview__stat--rank .torrent-uploader-preview__stat-icon {
    color: #caa33f;
}

.torrent-uploader-preview__stat--active .torrent-uploader-preview__stat-icon {
    color: #7b8fd6;
}

.torrent-uploader-preview__stat-label {
    flex: 0 0 auto;
    color: #9e968f;
}

.torrent-uploader-preview__stat-value {
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    min-width: 0;
    color: #2f2721;
    font-size: 13px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    overflow: hidden;
    text-overflow: ellipsis;
}

.torrent-uploader-preview__stat-number {
    color: #2f2721;
    opacity: 1;
    font-weight: 700;
}

.torrent-uploader-preview__stat-unit {
    color: rgba(47, 39, 33, 0.52);
    font-size: 9px;
    font-weight: 400;
}

.torrent-uploader-preview__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(100, 80, 61, 0.06);
}

.torrent-uploader-preview__action {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid rgba(100, 80, 61, 0.14);
    border-radius: 12px;
    background: #f5f5f5;
    color: #7a5840;
    text-decoration: none;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 6px 14px rgba(31, 22, 16, 0.05);
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, color 0.18s ease, background-color 0.18s ease;
}

.torrent-uploader-preview__action:only-child {
    flex-basis: 100%;
}

.torrent-uploader-preview__action--profile {
    order: 2;
}

.torrent-uploader-preview__action--message {
    order: 1;
}

.torrent-uploader-preview__action--logout {
    grid-column: 1 / -1;
    order: 99;
    justify-content: center;
    margin-top: 2px;
    border-color: rgba(122, 102, 84, 0.16);
    background: linear-gradient(180deg, #f8f7f5 0%, #f1eeea 100%);
    color: #735f51;
    box-shadow: none;
}

.torrent-uploader-preview__action:hover,
.torrent-uploader-preview__action:focus {
    transform: translateY(-1px);
    background: #efefef;
    border-color: rgba(100, 80, 61, 0.18);
    color: #8d5b33;
    box-shadow: 0 10px 18px rgba(31, 22, 16, 0.06);
}

.torrent-uploader-preview__action--logout:hover,
.torrent-uploader-preview__action--logout:focus {
    background: linear-gradient(180deg, #fff7f4 0%, #f3e7e2 100%);
    border-color: rgba(181, 98, 78, 0.3);
    color: #8a4939;
}

.torrent-uploader-preview__action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    color: #cf7b3d;
    font-size: 13px;
}

.torrent-uploader-preview__action--logout .torrent-uploader-preview__action-icon {
    color: #a87968;
}

.torrent-uploader-preview__action-text {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* 名字悬浮卡 action 的动态徽标：
 *   收件箱 "3/1" / 发件箱 "5" / 邀请 "2/0" / 签到 "已签到" 等。
 * 视觉上追加一个小 pill，不把原 label 抢位；未设 badge 的 action 不受影响。 */
.torrent-uploader-preview__action-badge {
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    background: rgba(145, 124, 94, 0.16);
    color: #5f4631;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
    .torrent-uploader-preview {
        transition: none;
    }

    .torrent-uploader-preview__card,
    .torrent-uploader-preview__action,
    .torrent-uploader-preview__avatar {
        transition: none;
    }
}



.torrent-manage-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    line-height: 1;
}

.torrent-manage-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.torrent-manage-icon {
    font-size: 16px;
    opacity: 0.5;
    transition: opacity 0.18s ease, color 0.18s ease, transform 0.18s ease;
}

.torrent-manage-icon--delete {
    color: #d64545;
}

.torrent-manage-icon--edit {
    color: #2f8b59;
}

.torrent-manage-link:hover .torrent-manage-icon,
.torrent-manage-link:focus .torrent-manage-icon {
    opacity: 1;
    transform: translateY(-1px);
}

.torrent-manage-link:hover .torrent-manage-icon--delete,
.torrent-manage-link:focus .torrent-manage-icon--delete {
    color: #e14d4d;
}

.torrent-manage-link:hover .torrent-manage-icon--edit,
.torrent-manage-link:focus .torrent-manage-icon--edit {
    color: #24995c;
}

.torrents-progress{
    height: 100%;
    background-color: #3aba3a;
    position: absolute;
    z-index: 99;
}
.torrents-progress2{
    height: 100%;
    background-color: #c2c2c2;
    position: absolute;
    z-index: 99;
}

.hide {
    display: none;
}

.show {
    display: block;
}

#mjsm-a { position:relative; width: 75px; float: right;
    color:#FB2D30;
}
#mjsm-b { 
    display: none;
    position: absolute;
    left:-50px;
    background-color: bisque;
    bottom:0px;
    padding: 10px;
    z-index: 10;
}
#must_frequency {
    display:none;
}

.pos-group-toggle-anchor:empty {
    display: none;
}

.pos-group-toggle-anchor {
    display: inline-flex;
    margin-right: 6px;
    vertical-align: middle;
}

.pos-group-toggle {
    display: inline-flex;
    align-items: center;
    height: 18px;
    padding: 0 6px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.7);
    appearance: none;
    -webkit-appearance: none;
    color: inherit;
    cursor: pointer;
    font-size: 11px;
    line-height: 1;
    font-family: inherit;
    vertical-align: middle;
}

.pos-group-toggle:hover {
    background: rgba(255, 255, 255, 0.9);
}

.pos-group-toggle:focus {
    outline: none;
}

/*
 * 仅键盘 Tab 聚焦时显示柔和的暖焦糖光环，鼠标点击时不再出现黑色 outline。
 * `:focus-visible` 在不支持的老浏览器里会被忽略，退回 `:focus { outline: none }`，
 * 整体视觉更干净；与页面其它字段输入框 focus 的暖焦糖环保持一致。
 */
.pos-group-toggle:focus-visible {
    outline: none;
    border-color: rgba(207, 153, 78, 0.6);
    box-shadow: 0 0 0 3px rgba(229, 164, 79, 0.18);
}

.pos-group-toggle img {
    flex: none;
}

/*
 * 当前页筛选 & 种子行"同组"展开/收起按钮：把默认那枚来自 icons.gif 的
 * 9x9 老式"+/-"方块图标换成 inline SVG chevron（向下 = 展开，向上 = 收起）
 * —— 只作用于 .pos-group-toggle 内部的 img.plus / img.minus，其他页面
 * (userdetails / details / index 等) 的 img.plus / img.minus 不受影响。
 *
 * 用 currentColor 让箭头颜色随按钮文字色变化（sticky 行白字 / 普通行暗字
 * 两种语境都能自适应），视觉上比原来的纯黑方块+号更精致、更现代。
 */
.pos-group-toggle img.plus,
.pos-group-toggle img.minus {
    width: 10px;
    height: 10px;
    background: none;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: 10px 10px;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: 10px 10px;
    background-color: currentColor;
    opacity: 0.72;
    transition: opacity 0.18s ease, transform 0.18s ease;
}

.pos-group-toggle:hover img.plus,
.pos-group-toggle:hover img.minus,
.pos-group-toggle:focus img.plus,
.pos-group-toggle:focus img.minus {
    opacity: 1;
}

/* 向下箭头：表示"点击展开" */
.pos-group-toggle img.plus {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M1.2 3.2l3.8 3.8 3.8-3.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M1.2 3.2l3.8 3.8 3.8-3.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}

/* 向上箭头：表示"点击收起" */
.pos-group-toggle img.minus {
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M1.2 6.8l3.8-3.8 3.8 3.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
    mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path d='M1.2 6.8l3.8-3.8 3.8 3.8' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/></svg>");
}

.pos-group-toggle-count {
    margin-left: 4px;
    min-width: 1ch;
    font-weight: 700;
}

/*
 * sticky_top / sticky_normal / sticky_web 行现在也是浅米白底（见 line 4086
 * 的 `background: transparent` 规则），原本为深色 sticky 设计的"白色半透胶囊"
 * 在浅底上几乎看不见，已整体移除 —— 让 sticky 行内的 pos-group-toggle 走
 * 与普通行完全一致的白底浅边造型。
 */

.media-info-card {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 20px;
    margin-top: 8px;
    padding: 16px 18px;
    border: 1px solid #ececec;
    border-radius: 12px;
    background: #fdfdfd;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.media-info-card__poster {
    flex: 0 0 252px;
    width: 252px;
    max-width: 100%;
}

.media-info-card__poster-frame {
    position: relative;
    width: 100%;
    aspect-ratio: 2 / 3;
    overflow: hidden;
    border-radius: 10px;
    background: linear-gradient(180deg, #f7f7f7 0%, #efefef 100%);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.12);
}

.media-info-card__poster img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    background: transparent;
}

.media-info-card__content {
    --media-info-label-width: 92px;
    flex: 1 1 520px;
    min-width: 320px;
    max-width: 100%;
}

.media-info-card__row {
    display: grid;
    grid-template-columns: var(--media-info-label-width) minmax(0, 1fr);
    align-items: start;
    column-gap: 12px;
    margin-bottom: 7px;
}

.media-info-card__label {
    color: #555;
    font-weight: 600;
    line-height: 1.8;
    white-space: nowrap;
}

.media-info-card__value {
    display: block;
    min-width: 0;
    color: #2f2f2f;
    line-height: 1.8;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.media-info-card__summary {
    display: grid;
    grid-template-columns: var(--media-info-label-width) minmax(0, 1fr);
    align-items: start;
    column-gap: 12px;
    row-gap: 4px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #ececec;
}

.media-info-card__label--block {
    display: block;
    margin-bottom: 0;
}

.media-info-card__value--block {
    display: block;
    min-width: 0;
    color: #555;
}

.media-info-card__clamp-wrap {
    position: relative;
}

.media-info-card__clamp {
    display: block;
    max-height: calc(1.85em * 3);
    overflow: hidden;
}

.media-info-card__clamp.is-expanded {
    max-height: none;
    overflow: visible;
}

.media-info-card__toggle,
.media-info-card__toggle:link,
.media-info-card__toggle:visited,
.media-info-card__toggle:active,
.media-info-card__toggle:focus {
    display: none;
    margin-top: 5px;
    color: #9a9a9a;
    font-size: 11px;
    line-height: 1.35;
    text-decoration: none;
    cursor: pointer;
    outline: none;
}

.media-info-card__toggle:hover {
    color: #777;
    text-decoration: underline;
}

.media-info-card__ellipsis,
.media-info-card__ellipsis:link,
.media-info-card__ellipsis:visited,
.media-info-card__ellipsis:hover,
.media-info-card__ellipsis:active,
.media-info-card__ellipsis:focus {
    display: none;
    position: absolute;
    right: 0;
    bottom: 0;
    padding-left: 16px;
    color: #8d8d8d;
    font-size: inherit;
    line-height: 1.8;
    text-decoration: none;
    cursor: pointer;
    background: linear-gradient(to right, rgba(253, 253, 253, 0), #fdfdfd 55%);
    outline: none;
}

.media-info-summary-meta {
    color: #999;
    cursor: pointer;
}

.media-info-summary-meta:hover {
    color: #8f8f8f;
}

div.niceTitle.mediaInfoTitle {
    padding: 0;
    border: 1px solid rgba(214, 195, 166, 0.72);
    border-radius: 14px;
    background: #fffdfa;
    box-shadow: 0 14px 34px rgba(62, 44, 22, 0.16), 0 2px 8px rgba(62, 44, 22, 0.08);
    color: #2f2517;
    opacity: 1 !important;
    filter: none !important;
}

div.niceTitle.mediaInfoTitle .contents {
    margin: 0;
    padding: 0;
    opacity: 1 !important;
    filter: none !important;
}

.media-info-tooltip {
    width: 700px;
    max-width: 80vw;
    overflow: hidden;
    border-radius: 13px;
    background: #fffdfa;
}

.media-info-tooltip .media-info-card {
    margin-top: 0;
    gap: 16px;
    padding: 14px 16px;
    border: 0;
    border-top: 2px solid rgba(196, 139, 54, 0.34);
    border-radius: 13px;
    background: #fffdfa;
    box-shadow: none;
}

.media-info-tooltip .media-info-card__poster {
    flex-basis: 180px;
    width: 180px;
}

.media-info-tooltip .media-info-card__content {
    --media-info-label-width: 78px;
    flex: 1 1 360px;
    min-width: 280px;
}

.media-info-tooltip .media-info-card__row {
    margin-bottom: 5px;
}

.media-info-tooltip .media-info-card__label,
.media-info-tooltip .media-info-card__value,
.media-info-tooltip .media-info-card__value--block {
    font-size: 12px;
    line-height: 1.6;
}

.media-info-tooltip .media-info-card__summary {
    margin-top: 10px;
    padding-top: 10px;
}

.media-info-tooltip__state {
    width: 220px;
    padding: 12px 14px;
    color: #777;
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 900px) {
    .media-info-card {
        gap: 16px;
        padding: 14px;
    }

    .media-info-card__poster {
        flex-basis: 208px;
        width: 208px;
    }

    .media-info-card__content {
        --media-info-label-width: 80px;
        flex-basis: 260px;
        min-width: 0;
    }
}

@media (max-width: 640px) {
    .media-info-card {
        gap: 12px;
        padding: 12px;
    }

    .media-info-card__poster {
        flex-basis: 180px;
        width: 180px;
    }

    .media-info-card__content {
        --media-info-label-width: 74px;
        flex-basis: 100%;
    }

    .media-info-card__row,
    .media-info-card__summary {
        column-gap: 10px;
    }
}

/* ============================================================================
 *  全站配色协调：把"高饱和孤岛"统一拉进暖奶油-焦糖主轴
 *
 *  涉及五块原本与主色族脱节的内容：
 *    ① 置顶 / 促销行底色（橘红、亮黄、紫蓝等彩色 _bg 类）
 *    ② 用户名 *_Name 类（Uploader 的 #DC143C 等高饱和颜色）
 *    ③ 列表内联 span.tags 五颜六色徽章（Free / 完结 / 中字…）
 *    ④ 资源行操作图标（下载 / 书签 / RSS）的冷蓝 hover
 *    ⑤ 促销文字 .free / .twoup / .halfdown 等高饱和点缀
 *
 *  整套规则只动饱和度和色相，不改语义/识别，所以"VIP 是绿"、"管理紫"
 *  这些约定俗成的辨色规律仍然成立。
 * ============================================================================ */

/* ---------- ① 置顶 / 促销行底色 ----------------------------------------------
 * 底层 theme.css 给的是 #e9b26e (sticky_normal) / #FFC77D (sticky_web) /
 * #ffff99 (free_bg) 这种 70+ 饱和度的颜色，落在新淡焦糖表头下面像撞色。
 * 改成把同一色相往透明 + 高明度方向拖：底色仍可识别，但不再"喧宾夺主"。
 */
/* ---------- ① 置顶资源：图标单元格色块 ----------------------------------------- */
body.page-torrent-list td.torrent-type-cell--sticky-top,
body.page-torrent-list td.torrent-type-cell--sticky-normal,
body.page-torrent-list td.torrent-type-cell--sticky-web {
    box-shadow: none !important;
    padding-left: 10px !important;
    background-color: var(--torrent-page-surface) !important;
}

#otherCopiesModal.other-copies-modal--torrent-list td.torrent-type-cell--sticky-top,
#otherCopiesModal.other-copies-modal--torrent-list td.torrent-type-cell--sticky-normal,
#otherCopiesModal.other-copies-modal--torrent-list td.torrent-type-cell--sticky-web {
    box-shadow: none !important;
    padding-left: 10px !important;
    background-color: var(--torrent-page-surface) !important;
}

body.page-torrent-list td.torrent-type-cell .torrent-type-cell__sticky-bar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    display: block;
    z-index: 1;
    pointer-events: auto;
}

#otherCopiesModal.other-copies-modal--torrent-list td.torrent-type-cell .torrent-type-cell__sticky-bar {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    display: block;
    z-index: 1;
    pointer-events: auto;
}

/* 三档色块与标题前置顶图标用完全相同的主色，让"色块 + 图标"形成视觉锚点对：
 *   - sticky-top (最高级) = #c98514 金     ⇄ 图标 .torrent-sticky-icon--global (星)
 *   - sticky-normal (普通) = #c24a32 砖红  ⇄ 图标 .torrent-sticky-icon--normal (图钉)
 *   - sticky-web  (团队)   = #2476c7 蓝    ⇄ 图标 .torrent-sticky-icon--web    (地球)
 * 上一版三档都是同色相暖橙 #a85612/#cf7a2b/#e2a14f，仅靠明度区分，
 * 在相邻行里并排时很难快速辨认；改走色相独立方案后，扫视就能判断。 */
body.page-torrent-list td.torrent-type-cell--sticky-top .torrent-type-cell__sticky-bar {
    background: var(--torrent-sticky-bar-top, #c98514);
}

#otherCopiesModal.other-copies-modal--torrent-list td.torrent-type-cell--sticky-top .torrent-type-cell__sticky-bar {
    background: var(--torrent-sticky-bar-top, #c98514);
}

body.page-torrent-list td.torrent-type-cell--sticky-normal .torrent-type-cell__sticky-bar {
    background: var(--torrent-sticky-bar-normal, #c24a32);
}

#otherCopiesModal.other-copies-modal--torrent-list td.torrent-type-cell--sticky-normal .torrent-type-cell__sticky-bar {
    background: var(--torrent-sticky-bar-normal, #c24a32);
}

body.page-torrent-list td.torrent-type-cell--sticky-web .torrent-type-cell__sticky-bar {
    background: var(--torrent-sticky-bar-web, #2476c7);
}

#otherCopiesModal.other-copies-modal--torrent-list td.torrent-type-cell--sticky-web .torrent-type-cell__sticky-bar {
    background: var(--torrent-sticky-bar-web, #2476c7);
}

/* ---------- ② 置顶资源：整行底色（当偏好 torrents.sticky.mark == 'row_bg' 时） ------
 * 服务端在 <tr> 上追加 torrent-row--sticky-{top,normal,web}，这里给该行
 * 所有 td 统一上色，达到"整行底色"的视觉。
 *
 * 色板选取"暖米黄"系而不是暖橙：
 *   - 避开了 BlasphemyOrange 主题 .sticky_normal (#e9b26e 偏红橙) 的配色，
 *     叠加时不会融合出"粉橙"观感；
 *   - 三档之间拉开明显的亮度梯度，让用户一眼分辨"顶置顶 / 普通置顶 / 团队推荐"
 *     的优先级；
 *   - 最深档仍控制在 30%~40% 饱和度，避免与 <td class="torrent-type-cell">
 *     里的紫/蓝/金类型小图标形成"脏对比"。
 *
 *   - sticky-top（全站 / 板块最高级）：#ffd47a 饱和琥珀金（L≈72）
 *   - sticky-normal（普通置顶）     ：#ffe7a8 稳重米黄（L≈80）
 *   - sticky-web（团队推荐）        ：#fff0c8 浅米（L≈86）
 *
 *   在上一版 80/87/93 的基础上整体向深再压一档 → 72/80/86，
 *   三档间距依旧均匀 6-8 点，但整体"分量"更足：即便在亮色系的
 *   页面主背景下，置顶行也能明显"沉下来"形成一块独立视觉区。
 *   最深档 #ffd47a 饱和度约 50%，仍偏金而非偏橙，和类型图标小色块
 *   叠加不脏。
 *
 * !important：同文件上方
 *   body.page-torrent-list #torrenttable td.rowfollow { background-color: var(--torrent-page-surface) }
 * 含 ID 特异度 (1,2,1)，会压过我们的 tr.xxx td 组合。
 * 并且老 theme.css 里 tr.sticky_top/normal/web 也会给 <tr> 自身 background，
 * 需要 !important 才能确保整行所有 td 都稳定展示我们指定的新色。 */
body.page-torrent-list tr.torrent-row--sticky-top > td {
    background-color: var(--torrent-sticky-row-top, #ffd47a) !important;
}
body.page-torrent-list tr.torrent-row--sticky-normal > td {
    background-color: var(--torrent-sticky-row-normal, #ffe7a8) !important;
}
body.page-torrent-list tr.torrent-row--sticky-web > td {
    background-color: var(--torrent-sticky-row-web, #fff0c8) !important;
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-top > td {
    background-color: var(--torrent-sticky-row-top, #ffd47a) !important;
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-normal > td {
    background-color: var(--torrent-sticky-row-normal, #ffe7a8) !important;
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-web > td {
    background-color: var(--torrent-sticky-row-web, #fff0c8) !important;
}
/* 同时把 <tr> 自身的背景清掉，防止老主题 tr.sticky_top 等规则残留的底色
 * 从 td 的透明区域（cellspacing 间隙等）漏出，与新底色叠加变色。 */
body.page-torrent-list tr.torrent-row--sticky-top,
body.page-torrent-list tr.torrent-row--sticky-normal,
body.page-torrent-list tr.torrent-row--sticky-web {
    background: transparent !important;
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-top,
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-normal,
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-web {
    background: transparent !important;
}
/* 标题 <td> 内部嵌套的 <table.torrentname> 里的 tr 从 theme.css 继承了背景色
 * （.free_bg / .twoup_bg 等），会盖掉上面的整行底色。这里把嵌套 tr 强制透明。 */
body.page-torrent-list tr.torrent-row--sticky-top .torrentname tr,
body.page-torrent-list tr.torrent-row--sticky-normal .torrentname tr,
body.page-torrent-list tr.torrent-row--sticky-web .torrentname tr {
    background: transparent !important;
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-top .torrentname tr,
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-normal .torrentname tr,
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--sticky-web .torrentname tr {
    background: transparent !important;
}

/* ---------- ③ 下载进度：整行底色按进度比例填充 (progress_display = 'row_bg') -------
 * 数据流：服务端给 <tr> 追加
 *   - .torrent-row--progress-bg            （锚点）
 *   - .torrent-row--progress-{status}      （状态：downloading/incomplete/completed/seeding）
 *   - inline style="--torrent-row-progress: <percent>%"
 *
 * 实现：纯 CSS。直接在 <tr> 上画 linear-gradient 作为整行底色。
 * 利用 HTML 表格背景绘制顺序（table → col → tr → td，由下到上）：
 *   只要 <td> 透明，<tr> 自身的 background 就会作为一整张连续矩形
 * 跨所有 cells 渲染——天然解决"渐变 50% 是整行 50% 而非每个 td 50%"
 * 的需求，无需 JS 计算每个 td 在整行里的偏移量再分段画。
 *
 * 历史：早期实现用 JS (initTorrentProgressRowBg) 按整行像素位置
 * 给每个 td 分别写 inline background-image，因渲染依赖
 * DOMContentLoaded 之后的 JS，页面刚加载的瞬间整行透明 → 漏出
 * 雾白基底，出现"白色闪烁"。改纯 CSS 后 HTML 解析完成即有底色，
 * 无闪烁，且省掉 ~90 行 JS 与 window.resize 监听。
 *
 * 配色思路：与标题下细进度条 .torrent-progress-badge--* 同色相，
 * 但极大降低饱和/抬高明度，避免铺满整行后视觉过重盖过标题/标签。
 *   downloading 橙   #c56a16 → 浅橙 #ffe6cc
 *   incomplete  暖灰 #c9bfb6 → 浅米 #f0eae3
 *   completed   冷蓝 #a1b2c5 → 浅冷蓝 #e0e8f1
 *   seeding     绿   #14823f → 浅绿 #d4f0dd
 * 用户可在控制面板"进度整行底色颜色"段覆盖；
 * 变量名 --torrent-progress-row-{status} 由 functions.php
 * 按 torrent_color_spec() 注入到 <body> inline style 上。
 *
 * !important：行底色基线由
 *   body.page-torrent-list #torrenttable td.rowfollow { background-color: var(--torrent-page-surface) }
 * 即 ID + class 特异度 (1,2,1) 决定，必须用 td 选择器 + !important
 * 把所有 td 抹透明；tr 上的渐变也加 !important，避免被老 theme.css
 * 的 tr 自身 background 抢绘制。 */
body.page-torrent-list tr.torrent-row--progress-bg {
    background-color: transparent !important;
    background-image: linear-gradient(
        to right,
        var(--torrent-row-progress-color) 0,
        var(--torrent-row-progress-color) var(--torrent-row-progress, 0%),
        var(--torrent-row-progress-remainder, var(--torrent-page-surface)) var(--torrent-row-progress, 0%),
        var(--torrent-row-progress-remainder, var(--torrent-page-surface)) 100%
    ) !important;
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg {
    background-color: transparent !important;
    background-image: linear-gradient(
        to right,
        var(--torrent-row-progress-color) 0,
        var(--torrent-row-progress-color) var(--torrent-row-progress, 0%),
        var(--torrent-row-progress-remainder, var(--torrent-page-surface)) var(--torrent-row-progress, 0%),
        var(--torrent-row-progress-remainder, var(--torrent-page-surface)) 100%
    ) !important;
}
body.page-torrent-list tr.torrent-row--progress-bg > td {
    /* 让 tr 的渐变穿过去：清掉所有 td 自身的背景（包括老 theme.css
     * 给 .rowfollow / .embedded 的 var(--torrent-page-surface) 基色，
     * 以及 sticky/old free_bg 等历史规则的 td background-color）。 */
    background-color: transparent !important;
    background-image: none !important;
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg > td {
    background-color: transparent !important;
    background-image: none !important;
}

body.page-torrent-list tr.torrent-row--progress-downloading {
    --torrent-row-progress-color: var(--torrent-progress-row-downloading, #ffe6cc);
}
body.page-torrent-list tr.torrent-row--progress-incomplete {
    --torrent-row-progress-color: var(--torrent-progress-row-incomplete, #f0eae3);
}
body.page-torrent-list tr.torrent-row--progress-completed {
    --torrent-row-progress-color: var(--torrent-progress-row-completed, #e0e8f1);
}
body.page-torrent-list tr.torrent-row--progress-seeding {
    --torrent-row-progress-color: var(--torrent-progress-row-seeding, #d4f0dd);
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-downloading {
    --torrent-row-progress-color: var(--torrent-progress-row-downloading, #ffe6cc);
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-incomplete {
    --torrent-row-progress-color: var(--torrent-progress-row-incomplete, #f0eae3);
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-completed {
    --torrent-row-progress-color: var(--torrent-progress-row-completed, #e0e8f1);
}
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-seeding {
    --torrent-row-progress-color: var(--torrent-progress-row-seeding, #d4f0dd);
}

/* hover 行：让原 hover 反馈仍可见而不"突然抹平"进度色。
 * tr 渐变里的"白段"用 var(--torrent-page-surface) 取色，
 * hover 时把这个变量重写为 -muted，自动驱动渐变变色，
 * 不必重写 background-image。 */
body.page-torrent-list tr.torrent-row--progress-bg:hover {
    --torrent-page-surface: var(--torrent-page-surface-muted);
}

#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg:hover {
    --torrent-page-surface: var(--torrent-page-surface-muted);
}

/* 嵌套 .torrentname tr 的背景透明化，防止子表色从 td 漏出 */
body.page-torrent-list tr.torrent-row--progress-bg .torrentname tr {
    background: transparent !important;
}

#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg .torrentname tr {
    background: transparent !important;
}

@media (max-width: 768px) {
    body.page-torrent-list .site-mainouter.site-mainouter--with-banner > tbody > tr > td#outer,
    body.page-torrent-list table.mainouter > tbody > tr > td#outer {
        overflow-x: hidden;
    }

    body.page-torrent-list #outer > table.main {
        width: 100% !important;
        min-width: 0 !important;
        table-layout: fixed !important;
    }

    body.page-torrent-list #outer > table.main > tbody > tr > td.embedded {
        width: 100% !important;
        min-width: 0 !important;
    }

    body.page-torrent-list .torrents-table {
        display: block;
        width: 100% !important;
        margin-left: 0;
        margin-right: 0;
        border-collapse: separate;
        border-spacing: 0;
    }

    body.page-torrent-list #torrenttable > tbody,
    body.page-torrent-list #torrenttable > tr {
        display: block;
        width: 100%;
    }

    body.page-torrent-list #torrenttable-head,
    body.page-torrent-list #torrent-front-filter-spacer-row {
        display: none !important;
    }

    body.page-torrent-list #torrenttable tr[data-torrent-row] {
        display: grid;
        grid-template-columns: 64px repeat(3, minmax(0, 1fr));
        gap: 7px 8px;
        width: 100%;
        box-sizing: border-box;
        padding: 10px 8px 11px;
        border-bottom: 1px solid var(--torrent-page-border);
        background: var(--torrent-page-surface);
    }

    body.page-torrent-list #torrenttable tr[data-torrent-row] > td {
        display: inline-flex;
        align-items: center;
        justify-content: flex-start;
        min-width: 0;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        color: var(--torrent-page-text);
        font-size: 10px;
        line-height: 1.35;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    body.page-torrent-list #torrenttable tr[data-torrent-row] > td[data-mobile-label]::before {
        content: attr(data-mobile-label);
        display: block;
        flex: 0 0 auto;
        margin: 0 0 2px;
        color: var(--torrent-page-text-muted);
        font-size: 9px;
        font-weight: 600;
        line-height: 1;
        opacity: .86;
    }

    body.page-torrent-list #torrenttable tr[data-torrent-row] > td.torrent-type-cell {
        grid-column: 1;
        grid-row: 1 / span 6;
        align-self: start;
        justify-content: center;
        padding-top: 2px !important;
    }

    body.page-torrent-list #torrenttable tr[data-torrent-row] > td.torrents-box {
        grid-column: 2 / -1;
        display: block;
        width: 100% !important;
        min-width: 0;
    }

    body.page-torrent-list #torrenttable tr[data-torrent-row] > td.torrents-box[data-mobile-label]::before,
    body.page-torrent-list #torrenttable tr[data-torrent-row] > td.torrent-type-cell[data-mobile-label]::before {
        display: none;
    }

    body.page-torrent-list .torrent-type-stack {
        align-items: center;
        gap: 4px;
    }

    body.page-torrent-list .torrent-type-badge img,
    body.page-torrent-list .torrent-type-badge--primary img,
    body.page-torrent-list .torrent-type-badge--secondary img {
        max-width: 30px;
        height: auto;
    }

    body.page-torrent-list table.torrentname,
    body.page-torrent-list table.torrentname > tbody,
    body.page-torrent-list table.torrentname > tbody > tr {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        table-layout: fixed !important;
    }

    body.page-torrent-list table.torrentname > tbody > tr > td.torrent-title-cell,
    body.page-torrent-list table.torrentname tr > td.torrent-title-cell {
        display: block;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 !important;
    }

    body.page-torrent-list table.torrentname > tbody > tr > td.torrent-row-actions-cell,
    body.page-torrent-list table.torrentname tr > td.torrent-row-actions-cell {
        display: block;
        width: 100% !important;
        padding-top: 4px !important;
        text-align: left !important;
        white-space: normal !important;
    }

    body.page-torrent-list .torrent-row-actions {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 4px 6px;
        max-width: 100%;
        white-space: normal;
    }

    body.page-torrent-list .torrent-row-actions__group--rating {
        min-width: 0;
        margin-right: 0;
        flex-wrap: wrap;
    }

    body.page-torrent-list .torrents-name .torrent-title-link,
    body.page-torrent-list .torrents-name .torrent-title-link:visited {
        display: inline;
        font-size: 12px;
        line-height: 1.38;
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    body.page-torrent-list .torrents-name .torrent-subtitle-line {
        margin-top: 3px;
        font-size: 11px;
        line-height: 1.45;
    }

    body.page-torrent-list .torrent-time-cell,
    body.page-torrent-list .torrent-size-cell,
    body.page-torrent-list .torrent-comments-cell,
    body.page-torrent-list .torrent-seeders-cell,
    body.page-torrent-list .torrent-leechers-cell,
    body.page-torrent-list .torrent-completed-cell,
    body.page-torrent-list .torrent-progress-cell,
    body.page-torrent-list .torrent-uploader-col,
    body.page-torrent-list .torrent-wait-cell,
    body.page-torrent-list .torrent-manage-cell {
        grid-column: auto / span 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        min-height: 18px;
        text-align: center;
        word-break: keep-all;
        overflow-wrap: normal;
    }

    body.page-torrent-list .torrent-time-cell {
        grid-column: auto / span 2;
    }

    body.page-torrent-list .torrent-progress-cell {
        grid-column: auto / span 1;
    }

    body.page-torrent-list .torrent-uploader-col {
        justify-content: flex-start;
    }

    body.page-torrent-list .torrent-uploader-cell,
    body.page-torrent-list .torrent-uploader-cell--anonymous {
        max-width: 100%;
        width: auto;
        text-align: left;
        justify-items: start;
    }

    body.page-torrent-list .torrent-progress-badge {
        max-width: 100%;
    }

    body.page-torrent-list .torrent-progress-badge .torrent-progress-value {
        display: inline-block;
        min-width: 0;
        white-space: nowrap;
    }

    body.page-torrent-list .torrent-manage-actions {
        display: inline-flex;
        gap: 6px;
    }
}

/* ---------- ③½ 冲突消解：sticky (置顶) 与 progress (下载状态) 同为整行底色 ----------
 * 当某一行同时具备进度 row_bg 与 sticky row_bg 时，按下载状态分两种处理：
 *
 *   A. 非"下载中"状态（incomplete / completed / seeding）：
 *      整行优先展示【置顶底色】。做法是把进度渐变的左右两段颜色都改写成
 *      对应的置顶色（--torrent-row-progress-color 与 -remainder 同色），
 *      于是无论进度百分比多少，整行都是一块纯置顶色——等价于"置顶优先"。
 *
 *   B. "下载中"状态（downloading）：
 *      左侧（已下载部分，宽度 = --torrent-row-progress）展示【下载状态色】，
 *      右侧（未下载部分）展示【置顶色】。做法是仅把渐变右段
 *      --torrent-row-progress-remainder 改写成置顶色，左段仍用下载色。
 *
 * 关键点：所有 td 仍由上方 5755 行的
 *   tr.torrent-row--progress-bg > td { background-color: transparent }
 * 抹成透明，整行底色完全由 <tr> 上的 linear-gradient 主导，
 * 因此这里只需重写 <tr> 上的两个 CSS 变量即可，无需再动 td。 */

/* A. 非下载中 + 置顶：整行置顶色（左右两段同色，进度百分比失效） */
body.page-torrent-list tr.torrent-row--progress-bg.torrent-row--sticky-top:not(.torrent-row--progress-downloading),
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg.torrent-row--sticky-top:not(.torrent-row--progress-downloading) {
    --torrent-row-progress-color: var(--torrent-sticky-row-top, #ffd47a);
    --torrent-row-progress-remainder: var(--torrent-sticky-row-top, #ffd47a);
}
body.page-torrent-list tr.torrent-row--progress-bg.torrent-row--sticky-normal:not(.torrent-row--progress-downloading),
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg.torrent-row--sticky-normal:not(.torrent-row--progress-downloading) {
    --torrent-row-progress-color: var(--torrent-sticky-row-normal, #ffe7a8);
    --torrent-row-progress-remainder: var(--torrent-sticky-row-normal, #ffe7a8);
}
body.page-torrent-list tr.torrent-row--progress-bg.torrent-row--sticky-web:not(.torrent-row--progress-downloading),
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg.torrent-row--sticky-web:not(.torrent-row--progress-downloading) {
    --torrent-row-progress-color: var(--torrent-sticky-row-web, #fff0c8);
    --torrent-row-progress-remainder: var(--torrent-sticky-row-web, #fff0c8);
}

/* B. 下载中 + 置顶：左段保留下载色，右段（未下载）改用置顶色 */
body.page-torrent-list tr.torrent-row--progress-bg.torrent-row--progress-downloading.torrent-row--sticky-top,
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg.torrent-row--progress-downloading.torrent-row--sticky-top {
    --torrent-row-progress-remainder: var(--torrent-sticky-row-top, #ffd47a);
}
body.page-torrent-list tr.torrent-row--progress-bg.torrent-row--progress-downloading.torrent-row--sticky-normal,
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg.torrent-row--progress-downloading.torrent-row--sticky-normal {
    --torrent-row-progress-remainder: var(--torrent-sticky-row-normal, #ffe7a8);
}
body.page-torrent-list tr.torrent-row--progress-bg.torrent-row--progress-downloading.torrent-row--sticky-web,
#otherCopiesModal.other-copies-modal--torrent-list tr.torrent-row--progress-bg.torrent-row--progress-downloading.torrent-row--sticky-web {
    --torrent-row-progress-remainder: var(--torrent-sticky-row-web, #fff0c8);
}

/* 清掉标题区内部子表格继承到的老 theme 背景，保持整行白底。 */
body.page-torrent-list .torrents-name tr.sticky_top,
body.page-torrent-list .torrents-name tr.sticky_normal,
body.page-torrent-list .torrents-name tr.sticky_web,
body.page-torrent-list .torrents-name tr.free_bg,
body.page-torrent-list .torrents-name tr.twoup_bg,
body.page-torrent-list .torrents-name tr.twoupfree_bg,
body.page-torrent-list .torrents-name tr.halfdown_bg,
body.page-torrent-list .torrents-name tr.twouphalfdown_bg,
body.page-torrent-list .torrents-name tr.thirtypercentdown_bg,
body.page-torrent-list .torrents-name tr.sticky_top > td,
body.page-torrent-list .torrents-name tr.sticky_normal > td,
body.page-torrent-list .torrents-name tr.sticky_web > td,
body.page-torrent-list .torrents-name tr.free_bg > td,
body.page-torrent-list .torrents-name tr.twoup_bg > td,
body.page-torrent-list .torrents-name tr.twoupfree_bg > td,
body.page-torrent-list .torrents-name tr.halfdown_bg > td,
body.page-torrent-list .torrents-name tr.twouphalfdown_bg > td,
body.page-torrent-list .torrents-name tr.thirtypercentdown_bg > td {
    background: transparent !important;
    background-color: transparent !important;
}

/* ---------- ② 用户名 *_Name 颜色统一到中饱和 ---------------------------------
 *  原值散布在各 theme.css 里，每个用户角色一个高饱和原色（Uploader #DC143C、
 *  Administrator #4b0082、VIP #009F00…），落在暖奶油 userbar 上像彩虹贴纸。
 *  这里统一往 S~50 / L~45 的方向收：
 *    - 红色族走焦糖红 / 砖红
 *    - 蓝色族走青灰蓝 / 雾蓝
 *    - 紫色族走灰紫 / 雾紫
 *    - 绿色族走橄榄绿 / 苔绿
 *    - 金色族走旧金 / 燧石金
 *  保留"颜色 = 角色"的视觉对应关系，但每个颜色不再扎眼。
 *  覆盖 a.*_Name 和 b.*_Name 两种用法，确保链接和标签都生效。
 */
.StaffLeader_Name, a.StaffLeader_Name, a.StaffLeader_Name:link, a.StaffLeader_Name:visited,
b.StaffLeader_Name { color: #9b3a3a !important; }

.SysOp_Name, a.SysOp_Name, a.SysOp_Name:link, a.SysOp_Name:visited,
b.SysOp_Name { color: #a86b3f !important; }

.Administrator_Name, a.Administrator_Name, a.Administrator_Name:link, a.Administrator_Name:visited,
b.Administrator_Name { color: #6b5b9a !important; }

.Moderator_Name, a.Moderator_Name, a.Moderator_Name:link, a.Moderator_Name:visited,
b.Moderator_Name { color: #5f7eb0 !important; }

.ForumModerator_Name, a.ForumModerator_Name, a.ForumModerator_Name:link, a.ForumModerator_Name:visited,
b.ForumModerator_Name { color: #6f6db8 !important; }

.Retiree_Name, a.Retiree_Name, a.Retiree_Name:link, a.Retiree_Name:visited,
b.Retiree_Name { color: #5fa8b0 !important; }

.Uploader_Name, a.Uploader_Name, a.Uploader_Name:link, a.Uploader_Name:visited,
b.Uploader_Name { color: #c4583e !important; }

.Helper_Name, a.Helper_Name, a.Helper_Name:link, a.Helper_Name:visited,
b.Helper_Name { color: #8e6cb8 !important; }

.Seeder_Name, a.Seeder_Name, a.Seeder_Name:link, a.Seeder_Name:visited,
b.Seeder_Name { color: #c47878 !important; }

.Transferrer_Name, a.Transferrer_Name, a.Transferrer_Name:link, a.Transferrer_Name:visited,
b.Transferrer_Name { color: #b056a0 !important; }

.TorrentManager_Name, a.TorrentManager_Name, a.TorrentManager_Name:link, a.TorrentManager_Name:visited,
b.TorrentManager_Name { color: #5f5fb0 !important; }

.Coder_Name, a.Coder_Name, a.Coder_Name:link, a.Coder_Name:visited,
b.Coder_Name { color: #5959a3 !important; }

.VIP_Name, a.VIP_Name, a.VIP_Name:link, a.VIP_Name:visited,
b.VIP_Name { color: #4f8a4f !important; }

.NexusMaster_Name, a.NexusMaster_Name, a.NexusMaster_Name:link, a.NexusMaster_Name:visited,
b.NexusMaster_Name { color: #5fa3c7 !important; }

.UltimateUser_Name, a.UltimateUser_Name, a.UltimateUser_Name:link, a.UltimateUser_Name:visited,
b.UltimateUser_Name { color: #4f8556 !important; }

.ExtremeUser_Name, a.ExtremeUser_Name, a.ExtremeUser_Name:link, a.ExtremeUser_Name:visited,
b.ExtremeUser_Name { color: #c08349 !important; }

.VeteranUser_Name, a.VeteranUser_Name, a.VeteranUser_Name:link, a.VeteranUser_Name:visited,
b.VeteranUser_Name { color: #5f5780 !important; }

.InsaneUser_Name, a.InsaneUser_Name, a.InsaneUser_Name:link, a.InsaneUser_Name:visited,
b.InsaneUser_Name { color: #8d4a9b !important; }

.CrazyUser_Name, a.CrazyUser_Name, a.CrazyUser_Name:link, a.CrazyUser_Name:visited,
b.CrazyUser_Name { color: #4fa0c4 !important; }

.EliteUser_Name, a.EliteUser_Name, a.EliteUser_Name:link, a.EliteUser_Name:visited,
b.EliteUser_Name { color: #4f8a8a !important; }

.PowerUser_Name, a.PowerUser_Name, a.PowerUser_Name:link, a.PowerUser_Name:visited,
b.PowerUser_Name { color: #b89554 !important; }

.User_Name, a.User_Name, a.User_Name:link, a.User_Name:visited,
b.User_Name { color: #4a4a52 !important; }

.Peasant_Name, a.Peasant_Name, a.Peasant_Name:link, a.Peasant_Name:visited,
b.Peasant_Name { color: #8b7e6e !important; }

/* hover 时整组统一加深 12% 左右，给"鼠标指到了"反馈，色相不变 */
a[class$="_Name"]:hover,
a[class$="_Name"]:focus {
    filter: brightness(0.85);
    text-decoration: none;
}

/* ---------- ③ + ⑤ span.tags 与 .free 系促销文字一并蜡笔化 -------------------
 *  原 tags.css 已统一把 span.tags 升级为 flex+圆角+阴影形态；此处再给全站
 *  span.tags 叠一道饱和度与亮度收敛，让所有彩色徽章（Free / 完结 / 禁转 /
 *  中字 / DIY / 原创 …）退到"白板上的水彩点"层级，不再抢内容标题的注意力。
 *
 *  历史：原本只作用在 body.page-torrent-list 的三处上下文（种子列表页）——搜索
 *  标签云、表格内嵌标签、前端筛选盒；现放宽到全站，使论坛、排行榜、详情页
 *  等所有出现 span.tags 的位置观感都与种子列表页保持一致。
 */
span.tags {
    /* 不再把亮度拉得过高：filter 会连文字一起处理，过亮会让白字边缘发虚。 */
    filter: saturate(0.5) brightness(1.07) contrast(1.05);
    opacity: 1;
    font-weight: 600;
    text-shadow: 0 1px 1px rgba(45, 29, 12, 0.3);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    transition: filter 0.16s ease, opacity 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
}

span.tags:hover {
    /* hover 往上抬一档，保持"默认 → hover"的色彩跃迁可感。 */
    filter: saturate(0.78) brightness(1.03) contrast(1.05);
    opacity: 1;
}

/* 标签样式偏好：默认 "柔和水彩" 沿用上方现有观感；其余样式只改变形态与色彩重量，
 * 保留 tags.css 中每个 t* 类的语义底色。 */
body.site-tag-style-classic span.tags {
    min-height: 16px;
    padding: 0 6px;
    border-radius: 3px;
    font-weight: 700;
    letter-spacing: 0;
    filter: saturate(0.76) brightness(1.01) contrast(1.06);
    opacity: 1;
    box-shadow: inset 0 -1px 0 rgba(45, 29, 12, 0.16);
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.3);
}

body.site-tag-style-classic span.tags:hover {
    filter: saturate(0.92) brightness(1) contrast(1.07);
    transform: none;
}

body.site-tag-style-dot span.tags {
    --tag-dot-color: #8f785f;
    min-height: 16px;
    padding: 0 5px 0 0;
    border-radius: 0;
    color: #55483d;
    background: transparent !important;
    filter: none;
    opacity: 1;
    font-weight: 650;
    letter-spacing: 0.01em;
    box-shadow: none;
    text-shadow: none;
}

body.site-tag-style-dot span.tags::before {
    content: "";
    flex: 0 0 auto;
    width: 5px;
    height: 5px;
    margin-right: 4px;
    border-radius: 999px;
    background: var(--tag-dot-color);
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.62), 0 1px 1px rgba(82, 56, 30, 0.12);
}

body.site-tag-style-dot span.tags:hover {
    color: #3f342b;
    filter: none;
    transform: none;
}

body.site-tag-style-border span.tags {
    --tag-dot-color: #8f785f;
    min-height: 18px;
    padding: 0 8px 0 6px;
    border-radius: 999px;
    color: #57483b;
    background: rgba(255, 252, 247, 0.82) !important;
    filter: none;
    opacity: 1;
    font-weight: 600;
    letter-spacing: 0.01em;
    box-shadow: inset 0 0 0 1px rgba(133, 101, 70, 0.18), 0 1px 2px rgba(82, 56, 30, 0.05);
    text-shadow: none;
}

body.site-tag-style-border span.tags::before {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 4px;
    margin-right: 4px;
    border-radius: 999px;
    background: var(--tag-dot-color);
    opacity: 0.72;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.65);
}

body.site-tag-style-border span.tags:hover {
    color: #3f342b;
    filter: none;
    transform: translateY(-1px);
    background: rgba(255, 252, 247, 0.96) !important;
    box-shadow: inset 0 0 0 1px rgba(133, 101, 70, 0.24), 0 1px 3px rgba(82, 56, 30, 0.08);
}

body.site-tag-style-border span.tags:hover::before {
    opacity: 0.88;
}

body.site-tag-style-dot span.tgf,
body.site-tag-style-border span.tgf { --tag-dot-color: #06c; }
body.site-tag-style-dot span.tyc,
body.site-tag-style-border span.tyc { --tag-dot-color: #085; }
body.site-tag-style-dot span.tgz,
body.site-tag-style-border span.tgz { --tag-dot-color: #530; }
body.site-tag-style-dot span.tdb,
body.site-tag-style-border span.tdb { --tag-dot-color: #358; }
body.site-tag-style-dot span.thdr10,
body.site-tag-style-border span.thdr10 { --tag-dot-color: #9a3; }
body.site-tag-style-dot span.thdrm,
body.site-tag-style-border span.thdrm { --tag-dot-color: #9b5; }
body.site-tag-style-dot span.tgy,
body.site-tag-style-border span.tgy { --tag-dot-color: #f96; }
body.site-tag-style-dot span.tyy,
body.site-tag-style-border span.tyy { --tag-dot-color: #f66; }
body.site-tag-style-dot span.tzz,
body.site-tag-style-border span.tzz { --tag-dot-color: #9c0; }
body.site-tag-style-dot span.tjz,
body.site-tag-style-border span.tjz { --tag-dot-color: #903; }
body.site-tag-style-dot span.txz,
body.site-tag-style-border span.txz { --tag-dot-color: #c03; }
body.site-tag-style-dot span.tdiy,
body.site-tag-style-border span.tdiy { --tag-dot-color: #993; }
body.site-tag-style-dot span.twj,
body.site-tag-style-border span.twj { --tag-dot-color: #4382ff; }
body.site-tag-style-dot span.tdh,
body.site-tag-style-border span.tdh { --tag-dot-color: #f596aa; }
body.site-tag-style-dot span.tsf,
body.site-tag-style-border span.tsf { --tag-dot-color: #339; }
body.site-tag-style-dot span.tyq,
body.site-tag-style-border span.tyq { --tag-dot-color: #f90; }
body.site-tag-style-dot span.tm0,
body.site-tag-style-border span.tm0 { --tag-dot-color: #096; }
body.site-tag-style-dot span.tok,
body.site-tag-style-border span.tok { --tag-dot-color: #ff3f33; }
body.site-tag-style-dot span.tmv,
body.site-tag-style-border span.tmv { --tag-dot-color: turquoise; }
body.site-tag-style-dot span.tlive,
body.site-tag-style-border span.tlive { --tag-dot-color: #ff46ed; }
body.site-tag-style-dot span.tconcert,
body.site-tag-style-border span.tconcert { --tag-dot-color: #3b64ff; }
body.site-tag-style-dot span.tyzj,
body.site-tag-style-border span.tyzj { --tag-dot-color: #87007e; }
body.site-tag-style-dot span.log,
body.site-tag-style-border span.log { --tag-dot-color: #ff9900; }

/* 标签字号跟随"控制面板 > 字体大小"。medium 保持 tags.css 的 11px 基准。 */
body.site-font-small span.tags {
    font-size: 10px;
    min-height: 15px;
}

body.site-font-medium span.tags {
    font-size: 11px;
}

body.site-font-large span.tags {
    font-size: 12px;
    min-height: 18px;
}

/* 促销文字（用作 <font class="free"> 等点缀）也统一拉到暖色族中明度 */
.free { color: #b88a52 !important; }
.twoup { color: #908a82 !important; }
.twoupfree { color: #6e9a6e !important; }
.halfdown { color: #7d7eb0 !important; }
.twouphalfdown { color: #6e9eb0 !important; }
.thirtypercent { color: #8c5a9b !important; }

/* ---------- ④ 资源行操作图标 hover 暖化 -------------------------------------
 *  下载图标 hover 原色是 #738ba3（冷蓝），与暖奶油语境违和。
 *  统一改成与 nav / tool 按钮 hover 一致的 #8a5b22 暖金。
 *  其它图标（书签 / RSS）默认/激活态本身已是焦糖色族，无需调整。
 */
body.page-torrent-list .torrent-row-action-link:hover .torrent-row-action-icon--download,
body.page-torrent-list .torrent-row-action-link:focus .torrent-row-action-icon--download {
    /* hover 走暖金强档 #7d4c24，盖掉 .torrent-row-action-link--download:hover
     * 在第 276 行写死的 #738ba3 冷色 */
    color: var(--torrent-page-accent-strong) !important;
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-action-link:hover .torrent-row-action-icon--download,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-action-link:focus .torrent-row-action-icon--download {
    color: var(--torrent-page-accent-strong) !important;
}

/* 默认态的下载图标走主题图标暖灰，与其它行操作图标 #9b958e 同语言 */
body.page-torrent-list .torrent-row-action-icon--download {
    color: var(--torrent-page-icon) !important;
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-action-icon--download {
    color: var(--torrent-page-icon) !important;
}

/* Promotion 图标 hover 同样翻暖金强档 */
body.page-torrent-list .torrent-row-action-link:hover .torrent-row-action-icon--promotion,
body.page-torrent-list .torrent-row-action-link:focus .torrent-row-action-icon--promotion {
    color: var(--torrent-page-accent-strong) !important;
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-action-link:hover .torrent-row-action-icon--promotion,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-action-link:focus .torrent-row-action-icon--promotion {
    color: var(--torrent-page-accent-strong) !important;
}

body.page-torrent-list .torrent-row-action-link,
body.page-torrent-list .torrent-row-action-icon {
    color: var(--torrent-page-icon);
}

#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-action-link,
#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-action-icon {
    color: var(--torrent-page-icon);
}

/* ---------- 标题行右侧操作组：评分 / 下载 / 顶贴 间距收紧 ----------------
 *  PHP 中三组图标被装在 <td width="20" align="right"> 里的内嵌 <table> 中，
 *  外层 torrentname 表 width:100%，标题列内容窄时剩余空间会被 action 列吞掉，
 *  内嵌表再把这部分宽度均分给三个 cell，导致三组图标被拉得很开。
 *  这里把 action 列宽度收到 1%（auto-shrink）并禁止换行，让内嵌表退回到自然宽度，
 *  再把三个 cell 的水平间距统一到 8px，看起来是一个紧凑的小工具组。
 */
/* 标题行右侧的"评分 / 下载+书签 / 顶贴+RSS"工具组：
 * 三组图标使用 inline-flex 紧凑排列，并通过 flex 容器 + justify-content: flex-end
 * 把整个组贴到 action cell 的右边缘；同时把 cell 自身的左内边距置 0，
 * 让图标紧贴所在表格列的右侧线。
 */
/* 标题行右侧的 action cell：用一个 100% 宽度的 flex 容器把三组图标推到 cell 的右边缘。
 * 这样无论 action cell 被 table-layout 拉到多宽，三组图标 (评分 / 下载+书签 / 顶贴+RSS)
 * 都紧贴 cell 右侧，不会再出现右侧大段空白。 */
body.page-torrent-list table.torrentname > tbody > tr > td.torrent-row-actions-cell,
body.page-torrent-list table.torrentname tr > td.torrent-row-actions-cell {
    text-align: right !important;
    padding: 0 !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    width: 1% !important;
}
#otherCopiesModal.other-copies-modal--torrent-list table.torrentname > tbody > tr > td.torrent-row-actions-cell,
#otherCopiesModal.other-copies-modal--torrent-list table.torrentname tr > td.torrent-row-actions-cell {
    text-align: right !important;
    padding: 0 !important;
    vertical-align: middle !important;
    white-space: nowrap !important;
    width: 1% !important;
}
body.page-torrent-list .torrent-row-actions {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    white-space: nowrap;
    box-sizing: border-box;
}
#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-actions {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 5px;
    white-space: nowrap;
    box-sizing: border-box;
}
body.page-torrent-list .torrent-row-actions__group {
    display: inline-flex;
    align-items: flex-start;
    flex-direction: column;
    line-height: 1;
    flex: 0 0 auto;
}
#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-actions__group {
    display: inline-flex;
    align-items: flex-start;
    flex-direction: column;
    line-height: 1;
    flex: 0 0 auto;
}
body.page-torrent-list .torrent-row-actions__group--rating {
    flex-direction: row;
    align-items: flex-start;
    /*
     * 优先保证"豆瓣图标跨行稳定对齐"。
     *
     * min-width 必须 ≥ 评分最多情况的自然宽度，否则 4 项满的行会撑破
     * min-width，导致下载图标被推右，反而拉偏其他行豆瓣的相对位置。
     *
     * 实测：单项 ≈ 24px（icon 14 + gap 2 + 数字 ~16，含 padding），
     *   4 项 + 3 个 5px gap ≈ 107px → 取 110px 作为基线，留一点点余量。
     *
     * 代价：评分项少的行右侧会有 20–30px 留白（豆瓣 1 项的行最明显）。
     *   这是"对齐"与"紧贴"的二选一中偏向对齐的取舍。
     *
     * 配合说明：
     *   - justify-content: flex-start：组内评分从左往右排，最左评分锁
     *     定在组左边界（= 所有行的基准线）。
     *   - margin-right: -3px：抵消父容器 gap 的一部分，让 4 项满行的
     *     评分与下载图标距离压到 ~2px，其他行的 download 图标同样前移
     *     一致的量，保持与 promotion 组间距 5px 不变。
     */
    justify-content: flex-start;
    min-width: 100px;
    margin-right: -3px;
}
#otherCopiesModal.other-copies-modal--torrent-list .torrent-row-actions__group--rating {
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-start;
    min-width: 100px;
    margin-right: -3px;
}

/* ================================================================
 * 种子详情页（details.php）响应式适配
 * ----------------------------------------------------------------
 * 原先 #detailsTable 硬编码 width=1280，在手机端（viewport 通常 <= 430）
 * 必然出现横滚。现在改为 width="100%" + 外层 .details-page-scroller 兜底：
 *   - 常态：表格按容器宽度自适应，手机端不再撑出滚动条；
 *   - 极端：若某些单元格内嵌超宽固定内容（iframe / 超长无断点字符串）
 *     实在收不住，横滚条局限在 .details-page-scroller 内部，
 *     不再让整个页面出现水平滚动条，保持全局布局稳定。
 * ================================================================ */
.details-page-scroller {
    /* 只在需要时出现横滚；overflow-y:visible 保证 tooltip / 下拉菜单
     * 等悬浮内容仍能溢出到容器外不被裁切。 */
    overflow-x: auto;
    overflow-y: visible;
    max-width: 100%;
}

#detailsTable {
    /* 桌面端：保留原先 width=1280 的视觉上限，避免在超宽屏（2K/4K）下
     *   被父容器拉到 1500+ 导致单行内容过长不利阅读；
     *   max-width 不影响手机端（手机端的 @media (max-width: 768px) 里
     *   还有 table-layout:fixed + width:100% 强制覆盖）。
     * 手机端：max-width:100% 让表格内部长内容（长链接、长文件名）能
     *   在窄屏内换行，不被迫撑宽 td。 */
    max-width: 1280px;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* 详情页所有 rowfollow 单元格：允许超长英文字符串（如 .torrent 文件名、
 * 长 URL）在任意位置断行，避免单行 67+ 字符把整个 td 撑到 500+px，
 * 然后连带整张 table 的 layout:auto 基准一起被顶宽、出现横滚。
 * word-break: break-all 对中文无不利影响（中文本来就按字符断行）。 */
#detailsTable > tbody > tr > td.rowfollow,
#detailsTable > tr > td.rowfollow {
    word-break: break-all;
    overflow-wrap: anywhere;
}

/* 详情页内嵌的 iframe / img 兜底：max-width:100% 确保永不撑破父容器 */
#detailsTable iframe,
#detailsTable img {
    max-width: 100%;
}

/* 嵌套在 #detailsTable 内的子 table（如 MediaInfo、热度表、内嵌排版表）
 * 同样约束到父容器宽度，避免它们撑破上层单元格。
 * 只给窄屏应用，桌面端嵌套表仍按内容展开，保持原有排版。 */
@media (max-width: 768px) {
    /* table-layout:fixed + width:100% 一起才能真正把嵌套表限制在父容器宽度内。
     * 否则 auto 布局下浏览器按内容 min-content 算宽度，max-width:100% 只是"建议"，
     * 被超长内容（如 MediaInfo 的长字符串）突破。 */
    #detailsTable table {
        table-layout: fixed;
        width: 100% !important;
        max-width: 100%;
        word-break: break-all;
        overflow-wrap: anywhere;
    }
    #detailsTable table td,
    #detailsTable table th {
        word-break: break-all;
        overflow-wrap: anywhere;
    }
}

/* 详情页 rowhead 列在窄屏下也需要适度压缩，避免它占掉过多横向空间
 * 让 rowfollow 内容区变得非常狭窄。 */
@media (max-width: 768px) {
    /* scroller 严格按视口约束，不让任何子元素把它顶宽 */
    .details-page-scroller {
        max-width: 100%;
        contain: inline-size;   /* 切断 table 的 max-content 反向撑大整条祖先链 */
    }

    /* table-layout: fixed 是让 td 的 max-width 真正生效的关键：
     *   auto 布局下，浏览器按子内容的 max-content 决定 td 宽度，
     *     word-break/overflow-wrap 仅在"确实没空间时"才触发；
     *   fixed 下 td 宽度由第一行约束或容器决定，任何超长内容必定换行。
     * 只在窄屏启用，桌面端保持原 auto 布局，不影响既有视觉。 */
    #detailsTable {
        table-layout: fixed;
        width: 100% !important;
    }

    #detailsTable > tbody > tr > td.rowhead,
    #detailsTable > tr > td.rowhead {
        /* 原本 width="13%"，窄屏下 13% 可能小于 label 文字宽度反而溢出，
         * 这里给一个可读的最小宽度，其余由浏览器自适应。 */
        width: 90px;
        min-width: 70px;
        white-space: nowrap;
    }
    #detailsTable > tbody > tr > td.rowfollow,
    #detailsTable > tr > td.rowfollow {
        /* 取消 width="87%" 的硬编码影响，让正文区拿到剩余全部空间；
         * fixed 布局 + width:auto 下占据 rowhead 剩余空间。 */
        width: auto;
    }
}

/* ================================================================
 * RSS 下载框 (myrss.php) 顶部"复制订阅地址"小按钮工具条
 * ----------------------------------------------------------------
 * 订阅 URL 不在页面文字中暴露，只通过按钮 data-url 携带，
 * 点击异步写剪贴板。整个 .myrss-toolbar 只是一条右对齐的细行，
 * 比之前的"label + 长 input + 按钮"卡片轻量 80%。
 * ================================================================ */
.myrss-toolbar {
    /* 与同页 .torrents-table 对齐：functions.php 注入的共享规则把
     * .torrents-table 的宽度限定为 calc(100% - var(--site-content-inline-gap) * 2)
     * 并 margin: auto 居中（左右内缩 26px）。toolbar 在 td.embedded 内
     * 没拿到 padding 内缩（td.embedded:not(:has(.torrents-table)) 不命中），
     * 这里手动套同一个公式，让"复制订阅地址"按钮恰好贴在表格右边线上。 */
    display: flex;
    justify-content: flex-end;
    align-items: center;
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2));
    max-width: none;
    margin: 0 auto 12px;
}

.rss-subscribe-copy-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 12px;
    height: 28px;
    color: #555;
    background: #ffffff;
    border: 1px solid rgba(120, 128, 140, 0.28);
    border-radius: 5px;
    font-weight: 500;
    font-size: 12.5px;
    line-height: 1;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.rss-subscribe-copy-btn:hover {
    color: #2f2f2f;
    background: #f5f6f7;
    border-color: rgba(120, 128, 140, 0.5);
}

.rss-subscribe-copy-btn:active {
    background: #eef0f2;
}

.rss-subscribe-copy-btn.is-success {
    color: #2e7d44;
    background: #f0f7f1;
    border-color: rgba(46, 125, 68, 0.42);
}

.rss-subscribe-copy-btn.is-failure {
    color: #a4423b;
    background: #faf2f1;
    border-color: rgba(164, 66, 59, 0.42);
}

.rss-subscribe-copy-btn__icon {
    font-size: 11.5px;
    color: #9aa0a6;
    transition: color 0.15s ease;
}

.rss-subscribe-copy-btn:hover .rss-subscribe-copy-btn__icon { color: #c1742d; }
.rss-subscribe-copy-btn.is-success .rss-subscribe-copy-btn__icon { color: #2e7d44; }
.rss-subscribe-copy-btn.is-failure .rss-subscribe-copy-btn__icon { color: #a4423b; }

/* ================================================================
 * RSS 下载框 (myrss.php) 列表底部"批量去除"工具条
 * ----------------------------------------------------------------
 * 默认 [hidden]：myrss.php inline JS 监听 rss[] 勾选状态，
 * 至少 1 项选中才显示，否则保持隐藏。
 * outline 中性风：默认灰；hover 才点出红色"删除是危险操作"语义。
 * ================================================================ */
.rss-batch-toolbar {
    display: flex;
    justify-content: center;
    margin: 12px auto 4px;
}

/* hidden 属性默认 display:none，但被 .rss-batch-toolbar 的 display:flex 覆盖；
 * 显式声明确保切换 hidden 即可隐藏整个工具条。 */
.rss-batch-toolbar[hidden] { display: none; }

.rss-batch-toolbar__submit {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 14px;
    height: 30px;
    color: #555;
    background: #ffffff;
    border: 1px solid rgba(120, 128, 140, 0.32);
    border-radius: 5px;
    font-weight: 500;
    font-size: 12.5px;
    line-height: 1;
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.rss-batch-toolbar__submit:hover {
    color: #a4423b;
    background: #faf2f1;
    border-color: rgba(164, 66, 59, 0.45);
}

.rss-batch-toolbar__submit:active {
    background: #f4e6e4;
}

.rss-batch-toolbar__icon {
    font-size: 12px;
    color: #9aa0a6;
    transition: color 0.15s ease;
}

.rss-batch-toolbar__submit:hover .rss-batch-toolbar__icon {
    color: #a4423b;
}

/* ================================================================
 * 首页群聊区
 * ----------------------------------------------------------------
 * 第一阶段只整理外层布局与消息行视觉，保留现有 iframe 刷新/提交机制。
 * ================================================================ */
.shoutbox-title {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.shoutbox-refresh {
    font-weight: normal;
    white-space: nowrap;
}

.shoutbox-shell td.text {
    padding: 8px;
}

.shoutbox-panel {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.shoutbox-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
}

.shoutbox-status {
    flex: 1 1 auto;
    color: #777;
    font-size: 12px;
}

.shoutbox-status.is-success {
    color: #2e7d44;
}

.shoutbox-status.is-error {
    color: #a4423b;
}

.shoutbox-status.is-loading {
    color: #8d5d2f;
}

.shoutbox-frame {
    display: block;
    width: 100%;
    height: 360px;
    border: 1px solid rgba(120, 120, 120, 0.28);
    border-radius: 6px;
    background: #fffaf5;
}

.shoutbox-message-list {
    box-sizing: border-box;
    overflow-y: auto;
    padding: 4px;
}

.shoutbox-empty {
    padding: 24px 8px;
    text-align: center;
    color: #888;
}

.shoutbox-compose {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.shoutbox-input-row {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.shoutbox-label {
    flex: 0 0 auto;
    white-space: nowrap;
}

.shoutbox-input {
    flex: 1 1 auto;
    min-width: 120px;
    min-height: 34px;
    max-height: 92px;
    box-sizing: border-box;
    border: 1px solid rgba(110, 110, 110, 0.52);
    border-radius: 4px;
    padding: 5px 7px;
    resize: vertical;
}

.shoutbox-input:focus {
    outline: none;
    border-color: rgba(220, 126, 34, 0.75);
    box-shadow: 0 0 0 2px rgba(220, 126, 34, 0.14);
}

.shoutbox-submit,
.shoutbox-to-guest,
.shoutbox-clear {
    flex: 0 0 auto;
}

.shoutbox-smilies {
    overflow-x: auto;
    padding: 2px 0;
}

.shoutbox-smilies > div {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: max-content;
}

td.shoutrow,
.shoutbox-message.shoutrow {
    padding: 4px 6px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

tr:nth-child(even) > td.shoutrow {
    background: rgba(0, 0, 0, 0.02);
}

.shoutbox-message:nth-child(even) {
    background: rgba(0, 0, 0, 0.02);
}

.shoutrow-date {
    color: #777;
    margin-right: 4px;
    white-space: nowrap;
}

td.shoutrow-system,
.shoutbox-message.shoutrow-system {
    background: rgba(65, 130, 210, 0.08);
}

td.shoutrow-help,
.shoutbox-message.shoutrow-help {
    background: rgba(234, 171, 58, 0.08);
}

.shoutbox-delete {
    margin: 0 4px 0 0;
    padding: 0 4px;
    border: 0;
    border-radius: 3px;
    color: #a4423b;
    background: rgba(164, 66, 59, 0.08);
    cursor: pointer;
    font-size: 11px;
    line-height: 1.5;
}

.shoutbox-delete:hover {
    background: rgba(164, 66, 59, 0.16);
}

@media (max-width: 720px) {
    .shoutbox-title,
    .shoutbox-input-row {
        align-items: stretch;
        flex-direction: column;
    }

    .shoutbox-refresh {
        white-space: normal;
    }

    .shoutbox-input,
    .shoutbox-submit,
    .shoutbox-to-guest,
    .shoutbox-clear,
    .shoutbox-load-more,
    .shoutbox-refresh-btn {
        width: 100%;
    }

    .shoutbox-toolbar {
        align-items: stretch;
        flex-direction: column;
    }
}

/* 群聊区视觉刷新：覆盖旧主题的橙色标题条、表格边框和一行式消息。 */
h2.shoutbox-title {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    margin: 14px 0 0;
    padding: 11px 14px;
    border: 1px solid rgba(211, 137, 58, 0.22);
    border-bottom: 0;
    border-radius: 12px 12px 0 0;
    color: #5b3a1e;
    background: linear-gradient(135deg, #fff7eb 0%, #fffdf8 58%, #fff1db 100%);
    box-shadow: 0 10px 26px rgba(139, 79, 23, 0.08);
}

.shoutbox-title-main {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.shoutbox-title-main::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 7px;
    border-radius: 999px;
    background: #38a169;
    box-shadow: 0 0 0 3px rgba(56, 161, 105, 0.16);
    vertical-align: 1px;
}

.shoutbox-title-sub {
    color: #a17445;
    font-size: 12px;
    font-weight: 400;
}

h2.shoutbox-title .shoutbox-refresh {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px 9px;
    border: 1px solid rgba(199, 128, 42, 0.18);
    border-radius: 999px;
    color: #8a5a2f;
    background: rgba(255, 255, 255, 0.66);
}

h2.shoutbox-title #countdown {
    min-width: 24px;
    text-align: center;
    color: #c96d1c;
}

.shoutbox-shell {
    border-spacing: 0;
    border: 0;
}

.shoutbox-shell,
.shoutbox-shell > tbody,
.shoutbox-shell > tbody > tr,
.shoutbox-shell > tbody > tr > td.text {
    border: 0 !important;
}

.shoutbox-shell > tbody > tr > td.text {
    padding: 0 !important;
    background: transparent;
}

.shoutbox-panel {
    gap: 0;
    padding: 12px;
    border: 1px solid rgba(211, 137, 58, 0.22);
    border-radius: 0 0 12px 12px;
    background: linear-gradient(180deg, rgba(255, 252, 247, 0.96), rgba(255, 248, 238, 0.92));
    box-shadow: 0 12px 28px rgba(139, 79, 23, 0.08);
}

.shoutbox-toolbar {
    gap: 10px;
    margin-bottom: 10px;
}

.shoutbox-panel .btn,
.shoutbox-panel button {
    height: 28px;
    border: 1px solid rgba(190, 123, 52, 0.26);
    border-radius: 7px;
    color: #70431b;
    background: linear-gradient(180deg, #fffdf9, #f7ede0);
    box-shadow: 0 1px 2px rgba(119, 69, 25, 0.08);
    cursor: pointer;
}

.shoutbox-panel .btn:hover,
.shoutbox-panel button:hover {
    border-color: rgba(196, 111, 29, 0.42);
    color: #5d320d;
    background: linear-gradient(180deg, #ffffff, #f5e3cf);
}

.shoutbox-status {
    padding-left: 4px;
    color: #9a7a5b;
}

.shoutbox-message-list {
    height: 318px;
    padding: 10px;
    border: 1px solid rgba(178, 130, 82, 0.22);
    border-radius: 10px;
    background:
        radial-gradient(circle at top left, rgba(255, 238, 208, 0.42), transparent 28%),
        linear-gradient(180deg, #ffffff, #fffaf4);
    box-shadow: inset 0 1px 3px rgba(120, 80, 40, 0.06);
}

.shoutbox-message.shoutrow {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    gap: 9px;
    align-items: flex-start;
    margin: 0 0 8px;
    padding: 9px 10px;
    border: 1px solid rgba(135, 97, 62, 0.1);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.78);
    box-shadow: 0 1px 3px rgba(105, 72, 37, 0.05);
}

.shoutbox-message:nth-child(even) {
    background: rgba(255, 251, 245, 0.86);
}

.shoutbox-message.shoutrow-system {
    border-color: rgba(76, 128, 196, 0.18);
    background: linear-gradient(180deg, rgba(246, 250, 255, 0.96), rgba(238, 246, 255, 0.92));
}

.shoutbox-message.shoutrow-help {
    border-color: rgba(224, 151, 41, 0.2);
    background: linear-gradient(180deg, rgba(255, 250, 239, 0.96), rgba(255, 244, 219, 0.9));
}

.shoutbox-message-avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 999px;
    color: #8a4a12;
    background: linear-gradient(135deg, #ffe6bf, #f6c170);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.52), 0 2px 5px rgba(142, 87, 28, 0.12);
    font-size: 12px;
    font-weight: 700;
}

.shoutbox-message-main {
    min-width: 0;
}

.shoutbox-message-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 3px;
}

.shoutbox-message-user {
    color: #6b3d19;
    font-weight: 700;
}

.shoutbox-message-user a {
    text-decoration: none;
}

.shoutbox-message-badge {
    padding: 1px 6px;
    border-radius: 999px;
    color: #2f68a8;
    background: rgba(47, 104, 168, 0.1);
    font-size: 11px;
    line-height: 1.45;
}

.shoutbox-message-badge--help {
    color: #9a621c;
    background: rgba(216, 142, 36, 0.13);
}

.shoutrow-date {
    margin-left: auto;
    color: #a28a72;
    font-size: 11px;
}

.shoutbox-message-body {
    color: #3f342a;
    line-height: 1.62;
}

.shoutbox-message-body img {
    max-height: 34px;
    vertical-align: middle;
}

.shoutbox-message-actions {
    opacity: 0;
    transition: opacity 0.15s ease;
}

.shoutbox-message:hover .shoutbox-message-actions,
.shoutbox-message:focus-within .shoutbox-message-actions {
    opacity: 1;
}

.shoutbox-delete {
    height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    font-size: 11px;
}

.shoutbox-compose {
    margin-top: 11px;
    padding: 10px;
    border: 1px solid rgba(178, 130, 82, 0.16);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.62);
}

.shoutbox-input-row {
    gap: 8px;
}

.shoutbox-label {
    color: #6d4b2e;
    font-weight: 700;
}

.shoutbox-input {
    min-height: 38px;
    border-color: rgba(177, 127, 78, 0.28);
    border-radius: 8px;
    color: #3f342a;
    background: rgba(255, 255, 255, 0.92);
}

.shoutbox-submit {
    min-width: 58px;
    color: #ffffff !important;
    border-color: rgba(198, 103, 18, 0.5) !important;
    background: linear-gradient(180deg, #f59b3b, #d87218) !important;
}

.shoutbox-smilies {
    margin-top: 2px;
}

.shoutbox-smilies > div {
    justify-content: flex-start;
    padding: 2px 0;
}

.shoutbox-smilies img {
    filter: saturate(0.92);
    transition: transform 0.12s ease;
}

.shoutbox-smilies a:hover img {
    transform: translateY(-1px) scale(1.08);
}

@media (max-width: 720px) {
    h2.shoutbox-title {
        grid-template-columns: 1fr;
    }

    .shoutbox-message.shoutrow {
        grid-template-columns: 30px minmax(0, 1fr);
    }

    .shoutbox-message-actions {
        grid-column: 2;
        opacity: 1;
    }

    .shoutrow-date {
        margin-left: 0;
    }
}

/* 首页群聊最终轻量化：为后续首页模块统一重构建立更通用的 header/list/composer 形态。 */
h2.shoutbox-title {
    position: relative;
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin-top: 12px;
    padding: 8px 10px;
    border-color: rgba(39, 52, 67, 0.08);
    border-radius: 8px 8px 0 0;
    background: #fff;
}

.shoutbox-title-main {
    font-size: 13px;
}

.shoutbox-title-main::before {
    width: 6px;
    height: 6px;
    margin-right: 6px;
}

h2.shoutbox-title .shoutbox-refresh {
    padding: 1px 3px 1px 7px;
    border-color: transparent;
    color: #9aa3ad;
    background: transparent;
}

h2.shoutbox-title #countdown {
    min-width: 18px;
    color: #d47a2a;
}

h2.shoutbox-title .shoutbox-refresh-btn {
    height: 20px;
    font-size: 11px;
}

h2.shoutbox-title .shoutbox-status {
    position: absolute;
    top: 7px;
    right: 112px;
    max-width: 280px;
    padding: 2px 7px;
    border-color: rgba(39, 52, 67, 0.08);
    font-size: 11px;
    pointer-events: none;
}

.shoutbox-panel {
    padding: 8px;
    border-color: rgba(39, 52, 67, 0.08);
    box-shadow: 0 4px 14px rgba(21, 31, 44, 0.04);
}

.shoutbox-toolbar {
    margin-bottom: 5px;
}

.shoutbox-message-list {
    height: 292px;
    padding: 0 6px;
    border-color: rgba(39, 52, 67, 0.08);
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(21, 31, 44, 0.03);
}

.shoutbox-message.shoutrow {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: baseline;
    margin: 0;
    padding: 7px 2px;
    border: 0;
    border-bottom: 1px solid rgba(39, 52, 67, 0.07);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.shoutbox-message.shoutrow:hover {
    border-color: rgba(39, 52, 67, 0.09);
    background: rgba(247, 248, 250, 0.74);
    box-shadow: none;
}

.shoutbox-message:last-child {
    border-bottom: 0;
}

.shoutbox-message-avatar {
    width: 20px;
    height: 20px;
    align-self: center;
    background: #f3f4f6;
}

.shoutbox-message-line {
    gap: 0;
    line-height: 1.5;
}

.shoutbox-message-line .shoutbox-message-user {
    margin-right: 8px;
    font-size: 12px;
}

.shoutbox-message-line .shoutrow-date {
    margin-right: 8px;
    color: #a4adb7;
    font-size: 10.5px;
}

.shoutbox-message-line .shoutbox-message-body {
    color: #374151;
    font-size: 12px;
}

.shoutbox-message-actions {
    align-self: center;
    opacity: 0;
}

.shoutbox-message:hover .shoutbox-message-actions,
.shoutbox-message:focus-within .shoutbox-message-actions {
    opacity: 1;
}

.shoutbox-message.shoutrow-system {
    grid-template-columns: minmax(0, 1fr) auto;
    margin: 6px 0;
    padding: 7px 9px;
    border: 1px solid rgba(54, 113, 190, 0.14);
    border-radius: 7px;
    background: #f7fbff;
    box-shadow: none;
}

.shoutbox-message.shoutrow-system .shoutbox-message-avatar {
    display: none;
}

.shoutbox-message.shoutrow-system .shoutbox-message-user {
    color: #315f92;
}

.shoutbox-message.shoutrow-system .shoutbox-message-badge {
    margin-right: 8px;
}

.shoutbox-message.shoutrow-help {
    background: transparent;
}

.shoutbox-compose {
    margin-top: 5px;
    padding: 4px 6px;
    border-color: rgba(39, 52, 67, 0.08);
    background: #fafbfc;
}

.shoutbox-input-row {
    gap: 5px;
}

.shoutbox-label {
    color: #66717f;
    font-size: 12px;
    font-weight: 600;
}

.shoutbox-input {
    min-height: 24px;
    max-height: 48px;
    padding: 2px 6px;
    border-color: rgba(39, 52, 67, 0.12);
    background: #fff;
}

.shoutbox-panel .btn,
.shoutbox-panel button {
    height: 23px;
    border-radius: 5px;
    font-size: 12px;
}

.shoutbox-submit {
    min-width: 52px;
}

.shoutbox-smilies {
    padding-top: 1px;
    opacity: 0.82;
}

.shoutbox-smilies:hover {
    opacity: 1;
}

.shoutbox-smilies img {
    max-width: 18px !important;
}

@media (max-width: 720px) {
    h2.shoutbox-title .shoutbox-status {
        position: static;
        justify-self: stretch;
        max-width: none;
    }

    .shoutbox-message.shoutrow,
    .shoutbox-message.shoutrow-system {
        grid-template-columns: 22px minmax(0, 1fr);
    }

    .shoutbox-message.shoutrow-system {
        grid-template-columns: minmax(0, 1fr);
    }

    .shoutbox-message-actions {
        grid-column: 2;
        opacity: 1;
    }
}

/* 首页模块视觉基线：中性面板 + 低饱和边框 + 少量品牌橙强调。
 * 这组规则放在群聊区末尾覆盖前一版偏暖的米色方案，后续首页其他模块
 * 可以复用同样的变量和结构方向，避免每块各自成套。 */
:root {
    --home-panel-bg: #ffffff;
    --home-panel-subtle: #f7f8fa;
    --home-panel-border: rgba(39, 52, 67, 0.10);
    --home-panel-border-strong: rgba(39, 52, 67, 0.14);
    --home-panel-text: #263442;
    --home-panel-muted: #7a8694;
    --home-panel-soft: #f2f4f7;
    --home-panel-accent: #e47b22;
    --home-panel-accent-soft: rgba(228, 123, 34, 0.10);
    --home-panel-success: #2f8f5b;
    --home-panel-danger: #b94a48;
    --home-panel-shadow: 0 8px 22px rgba(21, 31, 44, 0.06);
}

h2.shoutbox-title {
    margin: 14px 0 0;
    padding: 10px 14px;
    border: 1px solid var(--home-panel-border);
    border-bottom: 0;
    border-radius: 10px 10px 0 0;
    color: var(--home-panel-text);
    background: linear-gradient(180deg, #ffffff, #fafbfc);
    box-shadow: none;
}

.shoutbox-title-main {
    color: var(--home-panel-text);
    font-size: 14px;
}

.shoutbox-title-main::before {
    width: 7px;
    height: 7px;
    background: var(--home-panel-success);
    box-shadow: 0 0 0 3px rgba(47, 143, 91, 0.12);
}

.shoutbox-title-sub {
    color: var(--home-panel-muted);
}

h2.shoutbox-title .shoutbox-refresh {
    border-color: var(--home-panel-border);
    color: var(--home-panel-muted);
    background: var(--home-panel-subtle);
}

h2.shoutbox-title #countdown {
    color: var(--home-panel-accent);
}

.shoutbox-panel {
    padding: 12px;
    border-color: var(--home-panel-border);
    border-radius: 0 0 10px 10px;
    background: var(--home-panel-bg);
    box-shadow: var(--home-panel-shadow);
}

.shoutbox-toolbar {
    margin-bottom: 9px;
}

.shoutbox-panel .btn,
.shoutbox-panel button {
    height: 28px;
    border-color: var(--home-panel-border-strong);
    border-radius: 6px;
    color: #4b5563;
    background: #ffffff;
    box-shadow: none;
}

.shoutbox-panel .btn:hover,
.shoutbox-panel button:hover {
    border-color: rgba(228, 123, 34, 0.34);
    color: #2f3742;
    background: #fafafa;
}

.shoutbox-status {
    color: var(--home-panel-muted);
}

.shoutbox-message-list {
    height: 320px;
    padding: 8px;
    border-color: var(--home-panel-border);
    border-radius: 8px;
    background: var(--home-panel-subtle);
    box-shadow: inset 0 1px 2px rgba(21, 31, 44, 0.035);
}

.shoutbox-message.shoutrow {
    gap: 10px;
    margin-bottom: 7px;
    padding: 9px 10px;
    border-color: rgba(39, 52, 67, 0.08);
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(21, 31, 44, 0.035);
}

.shoutbox-message:nth-child(even) {
    background: #ffffff;
}

.shoutbox-message.shoutrow:hover {
    border-color: rgba(228, 123, 34, 0.22);
    box-shadow: 0 3px 10px rgba(21, 31, 44, 0.06);
}

.shoutbox-message.shoutrow-system {
    border-color: rgba(54, 113, 190, 0.16);
    background: #f7fbff;
}

.shoutbox-message.shoutrow-help {
    border-color: rgba(228, 123, 34, 0.18);
    background: #fff6ee;
}

.shoutbox-message-avatar {
    width: 28px;
    height: 28px;
    color: #7b4b1f;
    background: #fff3e5;
    box-shadow: inset 0 0 0 1px rgba(228, 123, 34, 0.18);
}

.shoutbox-message-user {
    color: var(--home-panel-text);
}

.shoutrow-date {
    color: var(--home-panel-muted);
}

.shoutbox-message-body {
    color: #374151;
}

.shoutbox-message-badge {
    color: #376fa8;
    background: rgba(55, 111, 168, 0.09);
}

.shoutbox-message-badge--help {
    color: #9b5f16;
    background: var(--home-panel-accent-soft);
}

.shoutbox-delete {
    color: var(--home-panel-danger);
    background: rgba(185, 74, 72, 0.08);
}

.shoutbox-compose {
    margin-top: 10px;
    padding: 9px;
    border-color: var(--home-panel-border);
    border-radius: 8px;
    background: #ffffff;
}

.shoutbox-label {
    color: #4b5563;
}

.shoutbox-input {
    border-color: var(--home-panel-border-strong);
    border-radius: 7px;
    color: var(--home-panel-text);
    background: #ffffff;
}

.shoutbox-input:focus {
    border-color: rgba(228, 123, 34, 0.52);
    box-shadow: 0 0 0 3px rgba(228, 123, 34, 0.10);
}

.shoutbox-submit {
    border-color: rgba(209, 100, 12, 0.72) !important;
    background: linear-gradient(180deg, #f28a31, #df741b) !important;
}

.shoutbox-smilies {
    padding-top: 4px;
}

/* 群聊区密度微调：更像首页信息组件，而不是独立聊天应用。 */
.shoutbox-panel {
    padding: 9px;
    position: relative;
}

.shoutbox-toolbar {
    align-items: center;
    margin-bottom: 7px;
}

.shoutbox-toolbar-spacer {
    flex: 1 1 auto;
}

.shoutbox-status {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 5;
    max-width: min(360px, calc(100% - 20px));
    overflow: hidden;
    padding: 5px 9px;
    border: 1px solid rgba(39, 52, 67, 0.10);
    border-radius: 999px;
    color: #6b7280;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 5px 16px rgba(21, 31, 44, 0.08);
    pointer-events: none;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.shoutbox-status[hidden] {
    display: none;
}

.shoutbox-status.is-success {
    color: #3f7d55;
}

.shoutbox-status.is-error {
    border-color: rgba(185, 74, 72, 0.20);
    color: #9f3d3b;
    background: rgba(255, 248, 248, 0.96);
}

.shoutbox-status.is-loading {
    color: #6b7280;
}

.shoutbox-message-list {
    height: 300px;
    padding: 6px;
}

.shoutbox-message.shoutrow {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    gap: 8px;
    margin-bottom: 5px;
    padding: 7px 9px;
}

.shoutbox-message-avatar {
    width: 24px;
    height: 24px;
    font-size: 11px;
}

.shoutbox-message-meta {
    gap: 5px;
    margin-bottom: 1px;
    line-height: 1.35;
}

.shoutbox-message-user {
    font-size: 12px;
}

.shoutbox-message-badge {
    padding: 0 5px;
    font-size: 10.5px;
}

.shoutrow-date {
    font-size: 10.5px;
}

.shoutbox-message-body {
    font-size: 12px;
    line-height: 1.5;
}

.shoutbox-message-body img {
    max-height: 28px;
}

.shoutbox-delete {
    height: 20px;
    padding: 0 7px;
}

.shoutbox-compose {
    margin-top: 8px;
    padding: 7px;
}

.shoutbox-input-row {
    align-items: stretch;
}

.shoutbox-label {
    display: flex;
    align-items: center;
    font-size: 12px;
}

.shoutbox-input {
    min-height: 31px;
    max-height: 74px;
    padding: 4px 7px;
    line-height: 1.45;
}

.shoutbox-panel .btn,
.shoutbox-panel button {
    height: 26px;
    padding-right: 10px;
    padding-left: 10px;
}

.shoutbox-submit {
    min-width: 54px;
}

.shoutbox-smilies {
    padding-top: 3px;
}

.shoutbox-smilies > div {
    gap: 2px;
}

.shoutbox-smilies img {
    max-width: 22px !important;
}

@media (max-width: 720px) {
    .shoutbox-toolbar-spacer {
        display: none;
    }

    .shoutbox-status {
        max-width: none;
        right: 8px;
        left: 8px;
    }
}

/* 用户反馈微调：去副标题/状态噪音，刷新按钮并入倒计时，头像使用真实图片，
 * 正文紧跟用户名，系统消息置顶。 */
h2.shoutbox-title {
    grid-template-columns: auto minmax(0, 1fr) auto;
}

h2.shoutbox-title .shoutbox-refresh {
    justify-self: end;
    gap: 6px;
    padding: 2px 4px 2px 9px;
}

h2.shoutbox-title .shoutbox-refresh-btn {
    width: auto;
    height: 22px;
    padding: 0 8px;
    border: 1px solid rgba(39, 52, 67, 0.12);
    border-radius: 999px;
    color: #4b5563;
    background: #fff;
    box-shadow: none;
}

h2.shoutbox-title .shoutbox-refresh-btn {
    max-width: 0;
    padding-right: 0;
    padding-left: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
    transition: max-width 0.16s ease, padding 0.16s ease, opacity 0.16s ease, border-color 0.16s ease;
}

h2.shoutbox-title .shoutbox-refresh:hover .shoutbox-refresh-btn,
h2.shoutbox-title .shoutbox-refresh:focus-within .shoutbox-refresh-btn {
    max-width: 48px;
    padding-right: 8px;
    padding-left: 8px;
    opacity: 1;
    pointer-events: auto;
}

h2.shoutbox-title .shoutbox-refresh-btn:hover {
    border-color: rgba(228, 123, 34, 0.34);
    color: #2f3742;
    background: #fafafa;
}

.shoutbox-status:empty {
    display: none;
}

h2.shoutbox-title .shoutbox-status {
    position: static;
    justify-self: end;
    max-width: 360px;
    padding: 2px 8px;
    box-shadow: none;
}

h2.shoutbox-title .shoutbox-status[hidden] {
    display: none;
}

.shoutbox-message.shoutrow {
    grid-template-columns: 28px minmax(0, 1fr) auto;
    align-items: center;
}

.shoutbox-message.shoutrow-system {
    position: sticky;
    top: 0;
    z-index: 2;
}

.shoutbox-message-avatar {
    overflow: hidden;
    background: #f3f4f6;
    box-shadow: inset 0 0 0 1px rgba(39, 52, 67, 0.08);
}

.shoutbox-message-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.shoutbox-message-line {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0;
    min-width: 0;
    line-height: 1.5;
}

.shoutbox-message-line .shoutbox-message-user {
    margin-right: 9px;
    white-space: nowrap;
}

.shoutbox-message-line .shoutbox-message-badge {
    margin-right: 8px;
}

.shoutbox-message-line .shoutbox-message-body {
    min-width: 0;
}

.shoutbox-message-side {
    display: flex;
    align-items: center;
    gap: 7px;
    align-self: flex-start;
}

.shoutbox-message-side .shoutrow-date {
    margin-left: 0;
}

.shoutbox-message-actions {
    display: flex;
}

@media (max-width: 720px) {
    h2.shoutbox-title {
        grid-template-columns: 1fr;
    }

    h2.shoutbox-title .shoutbox-refresh {
        justify-self: stretch;
    }

    h2.shoutbox-title .shoutbox-refresh-btn {
        width: auto;
    }

    .shoutbox-message.shoutrow {
        grid-template-columns: 28px minmax(0, 1fr);
    }

    .shoutbox-message-side {
        grid-column: 2;
    }
}

/* Runtime fix: keep the final homepage shoutbox layout after earlier iterative rules. */
h2.shoutbox-title {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    margin: 12px 0 0;
    padding: 8px 10px;
    border: 1px solid rgba(39, 52, 67, 0.08);
    border-bottom: 0;
    border-radius: 8px 8px 0 0;
    color: var(--home-panel-text, #263442);
    background: #fff;
}

h2.shoutbox-title .shoutbox-status {
    position: absolute;
    top: 7px;
    right: 112px;
    justify-self: auto;
    max-width: 280px;
    padding: 2px 7px;
    border: 1px solid rgba(39, 52, 67, 0.08);
    border-radius: 999px;
    font-size: 11px;
    box-shadow: none;
    pointer-events: none;
}

h2.shoutbox-title .shoutbox-refresh {
    justify-self: end;
    gap: 6px;
    padding: 1px 3px 1px 7px;
    border-color: transparent;
    color: #9aa3ad;
    background: transparent;
}

.shoutbox-panel {
    padding: 8px;
    border-color: rgba(39, 52, 67, 0.08);
    background: #fff;
    box-shadow: 0 4px 14px rgba(21, 31, 44, 0.04);
}

.shoutbox-message-list {
    height: 330px;
    padding: 0 4px;
    border-color: rgba(39, 52, 67, 0.08);
    background: #fff;
}

.shoutbox-message.shoutrow {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: baseline;
    margin: 0;
    padding: 6px 2px;
    border: 0;
    border-bottom: 1px solid rgba(39, 52, 67, 0.07);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.shoutbox-message.shoutrow:hover {
    background: rgba(247, 248, 250, 0.74);
    box-shadow: none;
}

.shoutbox-message.shoutrow-system {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    margin: 5px 0;
    padding: 6px 8px;
    border: 1px solid rgba(54, 113, 190, 0.14);
    border-radius: 7px;
    background: #f7fbff;
}

.shoutbox-message.shoutrow-system .shoutbox-message-avatar {
    display: none;
}

.shoutbox-message-avatar {
    display: block;
    width: 20px;
    height: 20px;
    align-self: center;
}

.shoutbox-message-line {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    min-width: 0;
    line-height: 1.5;
}

.shoutbox-message-line .shoutbox-message-user {
    margin-right: 8px;
    font-size: 12px;
    white-space: nowrap;
}

.shoutbox-message-line .shoutrow-date {
    margin-right: 0;
    margin-left: 8px;
    color: #a4adb7;
    font-size: 10.5px;
    white-space: nowrap;
}

.shoutbox-message-line .shoutbox-message-body {
    min-width: 0;
    color: #374151;
    font-size: 12px;
    line-height: 1.5;
}

.shoutbox-message-line > .shoutrow-date {
    margin-left: 8px;
}

.shoutbox-message-actions {
    align-self: center;
}

@media (max-width: 720px) {
    h2.shoutbox-title {
        grid-template-columns: 1fr;
    }

    h2.shoutbox-title .shoutbox-status {
        position: static;
        max-width: none;
    }

    .shoutbox-message.shoutrow {
        grid-template-columns: 22px minmax(0, 1fr);
    }

    .shoutbox-message.shoutrow-system {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* Compact composer: keep smilies in the input row and reveal the full list on demand. */
.shoutbox-compose {
    position: relative;
}

.shoutbox-smilies-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    width: 30px;
    padding-right: 0;
    padding-left: 0;
}

.shoutbox-smilies-toggle img {
    display: block;
    max-width: 18px !important;
    max-height: 18px;
}

.shoutbox-input-wrap {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    min-width: 120px;
}

.shoutbox-input-wrap .shoutbox-input {
    width: 100%;
    min-width: 0;
    padding-right: 28px;
}

.shoutbox-input-clear,
.shoutbox-panel .shoutbox-input-clear {
    position: absolute;
    top: 50%;
    right: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    color: #9aa3ad;
    background: transparent;
    box-shadow: none;
    font-size: 14px;
    line-height: 1;
    transform: translateY(-50%);
    cursor: pointer;
}

.shoutbox-input-clear:hover,
.shoutbox-input-clear:focus {
    color: #4b5563;
    background: rgba(39, 52, 67, 0.08);
    outline: none;
}

.shoutbox-input-clear[hidden] {
    display: none;
}

.shoutbox-smilies-toggle[aria-expanded="true"] {
    border-color: rgba(228, 123, 34, 0.36);
    color: #d66f18;
    background: #fff8f1;
}

.shoutbox-smilies {
    position: absolute;
    right: 7px;
    bottom: calc(100% - 2px);
    z-index: 10;
    max-width: min(420px, calc(100% - 14px));
    max-height: 132px;
    overflow: auto;
    padding: 8px;
    border: 1px solid rgba(39, 52, 67, 0.12);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 10px 28px rgba(21, 31, 44, 0.14);
}

.shoutbox-smilies[hidden] {
    display: none;
}

.shoutbox-smilies > div {
    justify-content: flex-start;
    min-width: 0;
}

.shoutbox-smilies img {
    display: block;
}

@media (max-width: 720px) {
    .shoutbox-input-wrap {
        width: 100%;
    }

    .shoutbox-smilies-toggle {
        width: 100%;
    }

    .shoutbox-smilies {
        right: 7px;
        left: 7px;
        max-width: none;
    }
}

/* ---------------------------------------------------------------------------
 * 匿名楼层里"管理员可见的真实身份"。
 *   保留匿名前缀；真实用户名 / 头衔沿用非匿名楼层的普通展示样式。
 * ------------------------------------------------------------------------- */
.anon-name {
    color: #8a7f72;
}

.anon-admin-reveal {
    display: inline-flex;
    align-items: center;
    gap: 0;
    margin-left: 6px;
    padding: 0;
    background: transparent;
    border: 0;
    color: inherit;
    font-size: inherit;
    font-style: normal;
    font-weight: inherit;
    line-height: inherit;
    border-radius: 0;
    vertical-align: middle;
    white-space: nowrap;
}

.anon-admin-reveal:hover {
    color: inherit;
}

.anon-admin-reveal__icon {
    display: none;
}

.anon-admin-reveal__body {
    display: inline-flex;
    align-items: center;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

/* ============================================================
 * [Dropdown component] 全站通用 dropdown 组件（2026-05）
 *
 *   命名空间：ui-dropdown / ui-dropdown-trigger / ui-dropdown-list
 *   渲染方式：include/functions_dropdown.php 的 render_dropdown_link / render_dropdown_form
 *   绑定 JS：common.js 末尾的 DOM ready IIFE（仅 [data-mode="form"]）
 *
 *   设计语言：
 *     trigger    — 透明 bg / 8px 圆角 / 暖棕 #806143 / ▾ caret / 28px 高
 *     ghost 变体 — trigger 加暖琥珀 dashed 边，admin-only 工具语义
 *     浮层       — 半透明白磨砂卡 + 12px 圆角 + 暖金 accent，复用 .ddsubmenustyle 视觉
 *     显隐       — pure CSS :hover / :focus-within，无 JS 依赖（form 模式 JS 只同步值）
 *     键盘可达   — focus trigger 即展开，Tab 进入 li，Enter 确认
 *
 *   说明：浮层底色 / 圆角 / 阴影 / li hover 等已由本文件上方 .ddsubmenustyle 通用规则
 *   提供（见 1494 行附近），这里只补 trigger 视觉、浮层定位、显隐控制、表单变体特性。
 * ============================================================ */

/* wrapper：相对定位、inline-block，hover/focus 时拉高 z-index 让浮层压住兄弟 */
.ui-dropdown {
    position: relative;
    display: inline-block;
    margin: 0;
    vertical-align: middle;
    z-index: 5;
}
.ui-dropdown:hover,
.ui-dropdown:focus-within {
    z-index: 32;
}

/* trigger：plain 变体 —— 透明、无边、暖棕字、28px 高、8px 圆角 + ▾ caret */
.ui-dropdown-trigger {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid transparent;
    border-radius: 8px;
    background: transparent;
    color: #806143;
    font-size: 11px;
    font-weight: 650;
    line-height: 1;
    list-style: none;
    cursor: pointer;
    user-select: none;
    transition: transform 0.18s ease, background-color 0.18s ease,
                color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}
.ui-dropdown-trigger::after {
    content: "\25BE"; /* ▾ */
    margin-left: 6px;
    color: #b89568;
    font-size: 0.85em;
    font-weight: 600;
    transform: translateY(1px);
}

/* 触发态：hover / focus 自身或父 wrapper 的 hover / focus-within 都激活 */
.ui-dropdown-trigger:hover,
.ui-dropdown-trigger:focus,
.ui-dropdown:hover .ui-dropdown-trigger,
.ui-dropdown:focus-within .ui-dropdown-trigger {
    color: #6f3a00;
    background: rgba(244, 232, 213, 0.32);
    outline: none;
    transform: translateY(-1px);
}

/* ghost 变体：dashed 暖琥珀边，admin-only 工具入口专用 */
.ui-dropdown--ghost .ui-dropdown-trigger {
    border: 1px dashed rgba(180, 140, 90, 0.45);
    /* ghost 不要 hover translate，因为它在表单行里和兄弟按钮基线对齐很敏感 */
    transform: none !important;
}
.ui-dropdown--ghost:hover .ui-dropdown-trigger,
.ui-dropdown--ghost:focus-within .ui-dropdown-trigger,
.ui-dropdown--ghost .ui-dropdown-trigger:hover,
.ui-dropdown--ghost .ui-dropdown-trigger:focus {
    background: rgba(245, 230, 200, 0.32);
    border-color: rgba(180, 140, 90, 0.75);
}

/* 浮层定位：左对齐 trigger 起点；高度有上限 + 暖棕细滚动条
 * （高亮颜色 dropdown 41 项要靠滚动避免撑出视口）
 *
 * 选择器写成 .ui-dropdown > .ui-dropdown-list 而非裸 .ui-dropdown-list，
 * 是为了把 specificity 提到 0,0,2,0 — ddlevelsmenu-base.css 里
 *   .ddsubmenustyle, .ddsubmenustyle div { visibility: hidden }
 * 规则 specificity 是 0,0,1,0 但加载在 custom.css 之后；CSS 平级 specificity
 * 时谁后定义谁赢，不提级我们的 visibility/display/position 会被 base 压住，
 * 浮层永远 hidden 看不见。旧 .forum-view__sort-list 没踩坑是因为它的选择器
 * 自带 3 层 class，spec 自然 0,0,3,0 高于 base。 */
.ui-dropdown > .ui-dropdown-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: auto;
    display: none;
    width: max-content;
    min-width: 132px;
    max-width: 280px;
    max-height: 320px;
    overflow-y: auto;
    overflow-x: hidden;
    margin: 4px 0 0 !important;
    visibility: visible;
    z-index: 33;
    scrollbar-width: thin;
    scrollbar-color: rgba(180, 140, 90, 0.55) transparent;
}
.ui-dropdown > .ui-dropdown-list::-webkit-scrollbar {
    width: 6px;
}
.ui-dropdown > .ui-dropdown-list::-webkit-scrollbar-thumb {
    background: rgba(180, 140, 90, 0.55);
    border-radius: 999px;
}
.ui-dropdown > .ui-dropdown-list::-webkit-scrollbar-track {
    background: transparent;
}

/* 鼠标桥：覆盖 trigger 和 list 之间 4px margin 缝隙的不可见伪元素。
 * 没有它，鼠标从 trigger 向下移动经过 4px 缝隙时短暂离开 .ui-dropdown
 * 的 hit region，:hover 状态丢失，list 短暂 display:none 后又重显，
 * 视觉上就是"下拉页一闪而过/消失"。
 *
 * 实现注意（踩过的坑）：
 *   v1 把桥放在 .ui-dropdown-list::before 上 —— 失效。原因：list 有
 *   `overflow-y: auto` 给 41 项色块滚动用，导致它的绝对定位 ::before 在
 *   list padding box 之外的部分（top:-6px）会被 overflow clip 掉，
 *   elementFromPoint 测点根本命不中桥。
 *
 *   v2 改挂在 wrapper .ui-dropdown 上（wrapper 自身 overflow:visible）。
 *   wrapper 是 inline-block 直接父，::after 相对它定位即可。
 *   宽度 = wrapper 宽（即 trigger 宽），但 trigger 一般比 list 窄，
 *   所以桥只能覆盖"trigger 正下方那一条"。鼠标从 trigger 中央往正下方
 *   移到 list 这条最常见的路径，这一条桥就够用。
 *
 *   桥一直存在（不切换 display）+ pointer-events:auto：trade-off 是
 *   trigger 正下方 6px 也算 hover 触发区。这 6px 区域极窄，几乎不会
 *   有用户在那里意外悬停而触发。 */
.ui-dropdown::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 6px;
    background: transparent;
    pointer-events: auto;
}

/* 显隐：pure CSS hover / focus-within（不依赖 JS） */
.ui-dropdown:hover .ui-dropdown-list,
.ui-dropdown:focus-within .ui-dropdown-list {
    display: block;
}

/* 浮层项：在 .ddsubmenustyle li a 的基础上微调 padding / font-size
 * 以匹配 trigger 11px 的字号体系 */
.ui-dropdown-list li a {
    min-width: 132px;
    font-size: 11.5px !important;
    font-weight: 400 !important;
    padding: 7px 16px 7px 14px !important;
    text-decoration: none !important;
}

/* 鼠标悬停行不加下划线（覆盖全站 a:hover 的 underline） */
.ui-dropdown-list li a:hover,
.ui-dropdown-list li a:focus {
    text-decoration: none !important;
}

/* 当前选中项：永久点亮（不只是 hover 才显示） */
.ui-dropdown-list li.is-selected > a {
    background: linear-gradient(90deg, rgba(246, 235, 218, 0.55), rgba(250, 244, 234, 0.4)) !important;
    color: #6b3e13 !important;
    font-weight: 500 !important;
}
.ui-dropdown-list li.is-selected > a::before {
    height: 62% !important;
    opacity: 1 !important;
}

/* 表单变体特殊：wrapper 上有 inline background-color 时（高亮颜色 dropdown
 * 用 trigger_style 暴露当前色），让 trigger 透色，给视觉一个"当前色 chip"。 */
.ui-dropdown[style*="background-color"] .ui-dropdown-trigger {
    background: inherit !important;
    color: inherit !important;
    border-color: rgba(0, 0, 0, 0.15) !important;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.35);
}

/* ------------------------------------------------------------
 * BBCode 工具栏 color dropdown 的色块（复用"主题管理"高亮色 dropdown 的视觉语言）
 *   - 列表项右侧画 12px 色块（--hl-color 由 item_style 提供，中性菜单行 + 右侧色块，
 *     不整行染色，避免与 hover 暖色底叠成脏色）
 *   - 选中某色后 common.js 把该项 inline style 提到 wrapper，trigger 左侧也显示同款色块
 * 不加 body.page-forums 前缀，使 upload / edit 等其它复用 textbbcode 的页面也生效。
 * ------------------------------------------------------------ */
.forum-compose__toolbar-dd--color .ui-dropdown-list li a[style*="--hl-color"] {
    position: relative;
    padding-right: 32px !important;
}
.forum-compose__toolbar-dd--color .ui-dropdown-list li a[style*="--hl-color"]::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 12px;
    width: 12px;
    height: 12px;
    transform: translateY(-50%);
    border: 1px solid rgba(80, 60, 40, 0.24);
    border-radius: 3px;
    background: var(--hl-color);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.34);
}
.forum-compose__toolbar-dd--color.ui-dropdown[style*="--hl-color"] .ui-dropdown-trigger::before {
    content: "";
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    margin-right: 6px;
    border: 1px solid rgba(80, 60, 40, 0.24);
    border-radius: 3px;
    background: var(--hl-color);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.34);
}

/* ============================================================
 * [BBCode 编辑器现代弹窗] 取代 url / img / list / email 工具栏按钮的
 *   原生 prompt() / alert()。结构由 common.js 的 window.uiBBPrompt 动态生成，
 *   tag_* 调用见 include/functions.php。
 *   视觉跟论坛管理的新版确认弹窗保持一致。
 * ============================================================ */
.ui-bb-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(38, 26, 14, 0.32);
    opacity: 0;
    transition: opacity 0.18s ease;
}
.ui-bb-modal-overlay.is-open {
    opacity: 1;
}
.ui-bb-modal {
    box-sizing: border-box;
    display: flex;
    gap: 14px;
    width: min(520px, calc(100vw - 48px));
    margin: 0;
    padding: 18px 20px;
    border-radius: 16px;
    background: #ffffff;
    border: 1px solid rgba(220, 227, 236, 0.82);
    box-shadow: 0 8px 20px rgba(49, 66, 96, 0.045),
                0 2px 6px rgba(49, 66, 96, 0.025);
    transform: translateY(8px) scale(0.98);
    transition: transform 0.2s cubic-bezier(0.2, 0.7, 0.3, 1);
    overflow: visible;
}
.ui-bb-modal-overlay.is-open .ui-bb-modal {
    transform: translateY(0) scale(1);
}
.ui-bb-modal__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border: 1px solid rgba(202, 145, 83, 0.35);
    border-radius: 50%;
    background: rgba(255, 247, 235, 0.92);
    color: #8a5518;
    font-size: 18px;
    font-weight: 800;
    line-height: 1;
}
.ui-bb-modal__content {
    min-width: 0;
    flex: 1 1 auto;
}
.ui-bb-modal__header {
    margin: 0 0 6px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: #3f3022;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.4;
}
.ui-bb-modal__body {
    display: grid;
    gap: 10px;
    margin: 0 0 12px;
    padding: 4px 0 2px;
    border: 0;
    border-radius: 0;
    background: transparent;
}
.ui-bb-modal__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ui-bb-modal__label {
    font-size: 12px;
    font-weight: 600;
    color: #9d9082;
}
.ui-bb-modal__input {
    box-sizing: border-box;
    height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(220, 227, 236, 0.82);
    border-radius: 10px;
    background: #fff;
    color: #4f4438;
    font-size: 13px;
    outline: none;
    transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
.ui-bb-modal__input:focus {
    border-color: rgba(202, 145, 83, 0.6);
    box-shadow: 0 0 0 3px rgba(202, 145, 83, 0.12);
}
.ui-bb-modal__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    width: 100%;
}
.ui-bb-modal__btn {
    box-sizing: border-box;
    height: 30px;
    min-height: 30px;
    padding: 4px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    border: 1px solid transparent;
    transition: transform 0.16s ease, box-shadow 0.16s ease,
                background-color 0.16s ease, color 0.16s ease, filter 0.16s ease;
}
.ui-bb-modal__btn--ghost {
    background: rgba(255, 255, 255, 0.86);
    color: #7a6a58;
    border-color: rgba(202, 145, 83, 0.28);
    box-shadow: none;
}
.ui-bb-modal__btn--ghost:hover {
    background: rgba(255, 247, 235, 0.95);
    color: #8a5518;
}
.ui-bb-modal__btn--primary {
    border-color: rgba(202, 145, 83, 0.52);
    background: rgba(255, 247, 235, 0.95);
    color: #8a5518;
    box-shadow: none;
}
.ui-bb-modal__btn--primary:hover {
    border-color: rgba(202, 145, 83, 0.7);
    background: rgba(255, 241, 219, 1);
    color: #6e3f0f;
}

/* ==========================================================================
 * 签到页（attendance.php）新版样式
 *
 * 渐变 hero banner + 卡片化布局，复用站点暖色调（与论坛 / 版规管理新版一致）：
 *   - 文字主色 #5f4e3e / #3f3022，描边 rgba(226,214,196,*)
 *   - 强调色橙金渐变 rgba(244,191,138)→rgba(218,158,82)
 * 全部限定在 body.page-attendance 下，避免污染其它页面。
 * ========================================================================== */
body.page-attendance .attendance-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}

/* ---- hero（浅色卡片 + 橙色图标徽章，与新版页面风格一致）---- */
body.page-attendance .attendance-hero {
    position: relative;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 18px;
    padding: 18px 22px;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 248, 238, 0.82));
    box-shadow: 0 10px 26px rgba(49, 66, 96, 0.05),
                0 2px 6px rgba(49, 66, 96, 0.03);
    overflow: hidden;
}
body.page-attendance .attendance-hero::before {
    content: "";
    position: absolute;
    top: -70px;
    right: -40px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle at center, rgba(244, 191, 138, 0.22), rgba(244, 191, 138, 0) 70%);
    pointer-events: none;
}
body.page-attendance .attendance-hero__badge {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    border-radius: 15px;
    background: linear-gradient(135deg, rgba(244, 191, 138, 0.98), rgba(218, 158, 82, 0.92));
    color: #fff;
    font-size: 23px;
    box-shadow: 0 6px 14px rgba(199, 131, 64, 0.26);
}
body.page-attendance .attendance-hero__text {
    position: relative;
    z-index: 1;
    min-width: 0;
}
body.page-attendance .attendance-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #3f3022;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 0.03em;
}
body.page-attendance .attendance-hero__sub {
    margin: 6px 0 0;
    color: #8a7a66;
    font-size: 13px;
    line-height: 1.5;
}

/* ---- 主卡片（验证 / 成功 / 已签） ---- */
body.page-attendance .attendance-card {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin: 0 0 18px;
    padding: 26px 24px;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 250, 243, 0.85));
    box-shadow: 0 10px 26px rgba(49, 66, 96, 0.05),
                0 2px 6px rgba(49, 66, 96, 0.03);
    text-align: center;
}
body.page-attendance .attendance-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(244, 191, 138, 0.95), rgba(218, 158, 82, 0.9));
    color: #ffffff;
    font-size: 25px;
    box-shadow: 0 6px 14px rgba(199, 131, 64, 0.22);
}
body.page-attendance .attendance-card__icon--success {
    background: linear-gradient(135deg, rgba(126, 196, 137, 0.95), rgba(76, 162, 96, 0.9));
    box-shadow: 0 6px 14px rgba(76, 162, 96, 0.22);
}
body.page-attendance .attendance-card__icon--done {
    background: linear-gradient(135deg, rgba(206, 196, 182, 0.95), rgba(168, 152, 130, 0.9));
    box-shadow: 0 6px 14px rgba(120, 104, 84, 0.2);
}
body.page-attendance .attendance-card__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #3f3022;
    font-size: 16px;
    font-weight: 700;
}
body.page-attendance .attendance-card__desc {
    margin: 0;
    color: #8a7a66;
    font-size: 13px;
    line-height: 1.5;
}
body.page-attendance .attendance-card__form {
    margin: 8px 0 0;
    padding: 14px;
    border: 1px dashed rgba(214, 184, 142, 0.7);
    border-radius: 14px;
    background: rgba(255, 248, 238, 0.6);
    display: flex;
    justify-content: center;
}

/* ---- 签到成功统计 ---- */
body.page-attendance .attendance-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
    margin-top: 10px;
    width: 100%;
}
body.page-attendance .attendance-stat {
    box-sizing: border-box;
    flex: 1 1 120px;
    min-width: 110px;
    max-width: 200px;
    padding: 16px 12px;
    border: 1px solid rgba(226, 214, 196, 0.8);
    border-radius: 14px;
    background: rgba(255, 252, 247, 0.9);
}
body.page-attendance .attendance-stat--highlight {
    border-color: rgba(199, 131, 64, 0.45);
    background: linear-gradient(135deg, rgba(255, 244, 228, 0.95), rgba(255, 236, 211, 0.9));
}
body.page-attendance .attendance-stat__num {
    display: block;
    color: #b06a1d;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.1;
}
body.page-attendance .attendance-stat--highlight .attendance-stat__num {
    color: #a85518;
}
body.page-attendance .attendance-stat__label {
    display: block;
    margin-top: 6px;
    color: #8a7a66;
    font-size: 12px;
}

/* ---- 奖励规则区块 ---- */
body.page-attendance .attendance-rules {
    box-sizing: border-box;
    padding: 20px 22px;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(255, 251, 245, 0.82));
    box-shadow: 0 8px 20px rgba(49, 66, 96, 0.04);
}
body.page-attendance .attendance-rules__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    padding: 0;
    background: none;
    color: #3f3022;
    font-size: 15px;
    font-weight: 700;
}
body.page-attendance .attendance-rules__title i {
    color: #d3923f;
    font-size: 15px;
}

/* 基础奖励两列 */
body.page-attendance .attendance-rules__base {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}
body.page-attendance .attendance-rule {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(229, 214, 191, 0.7);
    border-radius: 14px;
    background: rgba(255, 252, 247, 0.85);
    transition: border-color 0.16s ease, background-color 0.16s ease, transform 0.16s ease;
}
body.page-attendance .attendance-rule:hover {
    border-color: rgba(208, 186, 152, 0.92);
    background: #fff8ef;
    transform: translateY(-1px);
}
body.page-attendance .attendance-rule__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: linear-gradient(135deg, rgba(255, 240, 222, 0.95), rgba(250, 224, 195, 0.9));
    color: #c7833f;
    font-size: 16px;
}
body.page-attendance .attendance-rule__icon--coin {
    background: linear-gradient(135deg, rgba(255, 244, 214, 0.95), rgba(248, 222, 168, 0.9));
    color: #c79a2f;
}
body.page-attendance .attendance-rule__body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}
body.page-attendance .attendance-rule__label {
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 700;
}
body.page-attendance .attendance-rule__text {
    color: #8a7a66;
    font-size: 12.5px;
    line-height: 1.5;
}

/* 连续签到加成：徽章网格 */
body.page-attendance .attendance-streak {
    padding: 16px;
    border: 1px solid rgba(229, 214, 191, 0.7);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(255, 249, 240, 0.9), rgba(255, 244, 231, 0.8));
}
body.page-attendance .attendance-streak__head {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #b85f33;
    font-size: 13.5px;
    font-weight: 700;
}
body.page-attendance .attendance-streak__head i {
    font-size: 14px;
}
body.page-attendance .attendance-streak__note {
    margin: 6px 0 12px;
    color: #9a8872;
    font-size: 12px;
    line-height: 1.5;
}
body.page-attendance .attendance-streak__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(82px, 1fr));
    gap: 9px;
}
body.page-attendance .attendance-streak__chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 9px 6px;
    border: 1px solid rgba(224, 178, 130, 0.55);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.85);
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}
body.page-attendance .attendance-streak__chip:hover {
    transform: translateY(-2px);
    border-color: rgba(214, 150, 86, 0.85);
    box-shadow: 0 6px 14px rgba(199, 131, 64, 0.16);
}
body.page-attendance .attendance-streak__day {
    color: #7a6a58;
    font-size: 12px;
    font-weight: 600;
}
body.page-attendance .attendance-streak__bonus {
    color: #c7833f;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.1;
}

@media (max-width: 560px) {
    body.page-attendance .attendance-hero {
        padding: 18px 18px;
    }
    body.page-attendance .attendance-hero__title {
        font-size: 19px;
    }
    body.page-attendance .attendance-card {
        padding: 22px 16px;
    }
    body.page-attendance .attendance-rules__base {
        grid-template-columns: 1fr;
    }
    body.page-attendance .attendance-stat {
        flex-basis: 100%;
        max-width: none;
    }
}

/* ==========================================================================
 * 短讯页（messages.php）新版样式
 *
 * hero + tab 导航 + 卡片化列表，复用站点暖色调（与签到 / 论坛新版一致）。
 * 全部限定在 body.page-messages 下，避免污染其它页面。
 * ========================================================================== */
body.page-messages .pm-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 920px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-messages #outer > table.main:has(.pm-page) {
    width: calc(100% - 24px) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-messages #outer > table.main:has(.pm-page) > tbody > tr > td.embedded {
    padding-right: 12px !important;
    padding-left: 12px !important;
}

/* 顶部标题：与 tab 导航融合，避免列表工具页出现过重的 hero 卡片 */
body.page-messages .pm-hero {
    position: relative;
    box-sizing: border-box;
    width: fit-content;
    max-width: 100%;
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 7px;
    padding: 0 2px;
    border: 0;
    background: transparent;
    box-shadow: none;
}
body.page-messages .pm-hero__badge {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    background: rgba(244, 191, 138, 0.28);
    color: #c78340;
    font-size: 13px;
    box-shadow: none;
}
body.page-messages .pm-hero__text {
    position: relative;
    z-index: 1;
    min-width: 0;
}
body.page-messages .pm-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #4b3a28;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.03em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-messages .pm-hero__sub {
    margin: 2px 0 0;
    color: #a08e78;
    font-size: 11.5px;
    line-height: 1.4;
}

/* tab 导航：底部一条基线 + 选中态下划线（经典 tab 外观，替代原胶囊按钮） */
body.page-messages .pm-nav {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 4px;
    margin: 0 0 12px;
    border-bottom: 1px solid rgba(224, 208, 184, 0.7);
}
body.page-messages .pm-nav__tab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 14px;
    margin-bottom: -1px;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 8px 8px 0 0;
    background: transparent;
    color: #9b8268 !important;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none !important;
    transition: color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease;
}
body.page-messages .pm-nav__tab i {
    font-size: 12px;
    opacity: 0.8;
}
body.page-messages .pm-nav__tab:hover {
    background: rgba(248, 238, 224, 0.7);
    color: #7a572d !important;
}
body.page-messages .pm-nav__tab.is-active {
    border-bottom-color: #c78340;
    background: transparent;
    color: #6f3a00 !important;
}
body.page-messages .pm-nav__tab.is-active i {
    opacity: 1;
}
body.page-messages .pm-nav__tab--manage {
    position: absolute;
    right: 0;
    top: -42px;
    margin-left: 0;
    padding: 6px 10px;
    border: 1px solid rgba(226, 214, 196, 0.72);
    border-radius: 999px;
    background: rgba(255, 249, 240, 0.66);
    color: #8a6a45 !important;
    font-size: 12px;
}
body.page-messages .pm-nav__tab--manage:hover {
    border-color: rgba(214, 150, 86, 0.62);
    background: rgba(255, 246, 232, 0.92);
    color: #7a572d !important;
}

/* 搜索工具栏（精简内联） */
body.page-messages .pm-toolbar {
    margin: 0 0 12px;
}
body.page-messages .pm-search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
body.page-messages .pm-search__field {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 220px;
    min-width: 180px;
}
body.page-messages .pm-search__field i {
    position: absolute;
    left: 12px;
    color: #c7a37a;
    font-size: 13px;
    pointer-events: none;
}
body.page-messages .pm-search__input {
    box-sizing: border-box;
    width: 100%;
    height: 34px;
    padding: 6px 12px 6px 32px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
}
body.page-messages .pm-search__input:focus {
    outline: none;
    border-color: rgba(214, 150, 86, 0.75);
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.2);
}

/* 借用 torrents 高级搜索按钮样式，但把高度压到 34px，与本页输入框/下拉同基线
 * （torrents 原生是 40px，直接套用会比同排控件高一截） */
body.page-messages .pm-search .torrent-search-box__submit.btn {
    height: 34px;
    min-height: 34px;
    min-width: 96px;
    padding: 0 16px;
}

/* 通用 select */
body.page-messages .pm-select {
    box-sizing: border-box;
    height: 34px;
    padding: 6px 30px 6px 12px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23b8966a' d='M6 8L1.5 3.5h9z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    color: #5f4e3e;
    font-size: 13px;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}
body.page-messages .pm-select:focus {
    outline: none;
    border-color: rgba(214, 150, 86, 0.75);
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.2);
}

/* 新版 dropdown 组件在短讯页里做成"表单控件"外观：实线边 + 34px 高，
 * 与搜索输入框 / 按钮基线对齐，覆盖 plain 变体默认的透明无边样式 */
body.page-messages .pm-dd {
    vertical-align: middle;
}
body.page-messages .pm-dd .ui-dropdown-trigger {
    box-sizing: border-box;
    height: 34px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 500;
}
body.page-messages .pm-dd:hover .ui-dropdown-trigger,
body.page-messages .pm-dd:focus-within .ui-dropdown-trigger,
body.page-messages .pm-dd .ui-dropdown-trigger:hover,
body.page-messages .pm-dd .ui-dropdown-trigger:focus {
    transform: none;
    border-color: rgba(214, 150, 86, 0.75);
    background: #fffaf2;
    color: #6f3a00;
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.18);
}
/* 操作栏里的移动目标 dropdown 与按钮统一为 30px 高 */
body.page-messages .pm-actions .pm-dd .ui-dropdown-trigger,
body.page-messages .pm-view__move .pm-dd .ui-dropdown-trigger {
    height: 30px;
    min-height: 30px;
}
/* 底部操作区的下拉浮层向上展开，避开 td#outer 的纵向 overflow 裁剪 */
body.page-messages .pm-dd--up > .ui-dropdown-list {
    top: auto !important;
    bottom: 100% !important;
    margin: 0 0 4px !important;
}
body.page-messages .pm-dd--up::after {
    top: auto;
    bottom: 100%;
}

/* 通用按钮 */
body.page-messages .pm-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-sizing: border-box;
    height: 30px;
    padding: 0 14px;
    border: 1px solid rgba(229, 214, 191, 0.85);
    border-radius: 999px;
    background: rgba(255, 247, 235, 0.95);
    color: #8a5518 !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none !important;
    cursor: pointer;
    transition: color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}
body.page-messages .pm-btn i {
    font-size: 12px;
}
body.page-messages .pm-btn:hover {
    border-color: rgba(208, 186, 152, 0.95);
    background: #fff7eb;
    color: #7a572d !important;
}
/* 主按钮统一为 torrents 高级搜索按钮的米色磨砂样式（与搜索按钮一致） */
body.page-messages .pm-btn--primary {
    border: 0;
    background: rgba(245, 233, 214, 0.74);
    color: #7a572d !important;
    box-shadow: none;
}
body.page-messages .pm-btn--primary:hover {
    background: rgba(240, 226, 204, 0.86);
    color: #6b4b24 !important;
}
body.page-messages .pm-btn--danger {
    border-color: rgba(216, 159, 159, 0.72);
    background: rgba(254, 240, 240, 0.95);
    color: #a64545 !important;
}
body.page-messages .pm-btn--danger:hover {
    border-color: rgba(204, 130, 130, 0.85);
    background: #fdeaea;
    color: #8f3535 !important;
}
body.page-messages .pm-btn--ghost {
    background: rgba(255, 255, 255, 0.85);
    color: #7a6a58 !important;
}

/* 列表（统一容器 + 分隔线） */
body.page-messages .pm-list {
    margin: 0 0 12px;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 14px;
    background: #ffffff;
    overflow: hidden;
}
body.page-messages .pm-item-row {
    position: relative;
    border-bottom: 1px solid rgba(232, 222, 207, 0.7);
    transition: background-color 0.16s ease;
}
body.page-messages .pm-item-row:last-child {
    border-bottom: none;
}
body.page-messages .pm-item-row:hover {
    background: rgba(255, 248, 238, 0.7);
}
body.page-messages .pm-item-row.is-unread {
    background: rgba(255, 248, 237, 0.85);
}
body.page-messages .pm-item-row.is-unread::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, #f0a35a, #d77f2f);
}
body.page-messages .pm-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 16px;
}
/* 自定义复选框：橙底 + 白色对勾。原先用 accent-color，浏览器在中等明度的
 * 橙色上会自动配黑色对勾，全选时一片黑勾很难看，故改成 appearance:none 自绘 */
body.page-messages .pm-item__check {
    flex: 0 0 auto;
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
    border: 1.5px solid rgba(199, 163, 122, 0.85);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
body.page-messages .pm-item__check:hover {
    border-color: #d6964e;
}
body.page-messages .pm-item__check:checked {
    border-color: #d6964e;
    background-color: #d6964e;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.4 6.2l2.4 2.4 4.8-5.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 11px 11px;
}
body.page-messages .pm-item__check:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.35);
}
/* 不再用圆点区分已读/未读：未读靠左侧橙竖条 + 暖底 + 加粗深色标题即可，
 * 已读用中性暖棕常规标题，保留层级但避免过浅。圆点整体移除，标题更贴近复选框，列表更干净 */
body.page-messages .pm-item__status {
    display: none;
}
body.page-messages .pm-item__subject {
    flex: 1 1 auto;
    min-width: 0;
    color: #7f6d59 !important;
    font-size: 13.5px;
    font-weight: 400;
    text-decoration: none !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-messages .pm-item-row.is-unread .pm-item__subject {
    color: #3f3022 !important;
    font-weight: 700;
}
body.page-messages .pm-item__subject:hover {
    color: #b06a1d !important;
    text-decoration: underline !important;
}
body.page-messages .pm-item__user {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    max-width: 180px;
    color: #8a7a66;
    font-size: 12px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-messages .pm-item__user i {
    font-size: 11px;
    opacity: 0.7;
}
body.page-messages .pm-item__avatar {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(224, 208, 184, 0.8);
    background: #fff;
}
body.page-messages .pm-item__time {
    flex: 0 0 auto;
    color: #a3937e;
    font-size: 11.5px;
    white-space: nowrap;
}
/* 未读正文预览：压成单行从属副标题，避免一条未读把整段铺开导致行高跳变 */
body.page-messages .pm-item__preview {
    padding: 0 16px 9px 44px;
    color: #a2937f;
    font-size: 12px;
    line-height: 1.5;
    max-height: 1.5em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-messages .pm-item__preview * {
    display: inline;
    margin: 0;
    padding: 0;
    font-size: inherit !important;
    line-height: inherit !important;
    font-weight: inherit !important;
    color: inherit !important;
    background: none !important;
}
body.page-messages .pm-item__preview img,
body.page-messages .pm-item__preview br {
    display: none !important;
}

/* 批量操作栏（精简） */
body.page-messages .pm-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 10px 2px;
}
body.page-messages .pm-actions__group {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
body.page-messages .pm-actions__group--system {
    margin-left: auto;
}

/* 「更多」次级菜单：把低频的清空游戏/删种收进悬浮面板（hover/focus 展开，无需点击） */
body.page-messages .pm-more {
    position: relative;
    margin-left: auto;
}
body.page-messages .pm-more__summary {
    cursor: default;
    user-select: none;
}
body.page-messages .pm-more:hover .pm-more__summary,
body.page-messages .pm-more:focus-within .pm-more__summary {
    border-color: rgba(214, 150, 86, 0.7);
    background: #fff7ec;
    color: #6f3a00;
}
/* 向上展开：操作栏在内容底部，td#outer 的 overflow-x:auto 会连带把
 * overflow-y 也变成 auto，向下的浮层会被裁剪，故统一往上弹 */
body.page-messages .pm-more__panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 6px);
    display: none;
    flex-direction: column;
    gap: 6px;
    min-width: 150px;
    padding: 8px;
    border: 1px solid rgba(226, 214, 196, 0.95);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 -10px 30px rgba(120, 84, 40, 0.18);
    z-index: 30;
}
body.page-messages .pm-more:hover .pm-more__panel,
body.page-messages .pm-more:focus-within .pm-more__panel {
    display: flex;
}
/* 鼠标桥：盖住按钮与面板之间 6px 缝隙，避免移过去时 hover 丢失闪烁 */
body.page-messages .pm-more::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 100%;
    width: 100%;
    height: 8px;
}
body.page-messages .pm-more__panel .pm-btn {
    width: 100%;
    justify-content: flex-start;
}

/* 分页：复用站点新版 content-list 翻页（site-pager--content-list），
 * 这里仅控制外层 wrapper 的间距，文字/链接配色交给 .site-pager 体系，
 * 与种子列表 / 论坛 / 用户列表等新版页面保持一致。 */
body.page-messages .pm-pager {
    margin: 0;
}
body.page-messages .pm-pager .site-pager {
    margin: 0 auto;
}
body.page-messages .pm-pager--bottom .site-pager {
    margin-top: 14px;
}

/* 空态 */
body.page-messages .pm-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 44px 20px;
    border: 1px dashed rgba(214, 184, 142, 0.7);
    border-radius: 16px;
    background: rgba(255, 252, 247, 0.6);
    color: #a3937e;
    font-size: 13px;
}
body.page-messages .pm-empty i {
    font-size: 30px;
    color: rgba(214, 184, 142, 0.85);
}
body.page-messages .pm-empty--inline {
    padding: 18px;
    margin-top: 10px;
}

/* 单条短讯视图 */
body.page-messages .pm-view {
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 250, 243, 0.85));
    box-shadow: 0 10px 26px rgba(49, 66, 96, 0.05), 0 2px 6px rgba(49, 66, 96, 0.03);
    overflow: hidden;
}
body.page-messages .pm-view__head {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    padding: 16px 22px;
    border-bottom: 1px solid rgba(226, 214, 196, 0.7);
    background: rgba(255, 248, 238, 0.5);
}
body.page-messages .pm-view__meta {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
body.page-messages .pm-view__label {
    color: #a3937e;
    font-size: 11.5px;
}
body.page-messages .pm-view__value {
    color: #4a3a29;
    font-size: 13px;
    font-weight: 600;
}
body.page-messages .pm-view__badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, #f0a35a, #d77f2f);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}
body.page-messages .pm-view__body {
    padding: 22px;
    color: #4f4438;
    font-size: 13.5px;
    line-height: 1.75;
    min-height: 80px;
}
body.page-messages .pm-view__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    padding: 14px 22px;
    border-top: 1px solid rgba(226, 214, 196, 0.7);
    background: rgba(255, 252, 247, 0.6);
}
body.page-messages .pm-view__move {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
body.page-messages .pm-view__ops {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

/* 转发 / 编辑表单 */
body.page-messages .pm-form__card,
body.page-messages .pm-box-card {
    box-sizing: border-box;
    padding: 20px 22px;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 250, 243, 0.85));
    box-shadow: 0 10px 26px rgba(49, 66, 96, 0.05), 0 2px 6px rgba(49, 66, 96, 0.03);
}
body.page-messages .pm-field {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(226, 214, 196, 0.55);
}
body.page-messages .pm-field--block {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
}
body.page-messages .pm-field:last-child {
    border-bottom: none;
}
body.page-messages .pm-field__label {
    flex: 0 0 90px;
    color: #7a6a58;
    font-size: 13px;
    font-weight: 600;
}
body.page-messages .pm-field--block .pm-field__label {
    flex: none;
}
body.page-messages .pm-field__static {
    color: #4a3a29;
    font-size: 13px;
}
body.page-messages .pm-field__quote {
    padding: 12px 14px;
    border: 1px solid rgba(226, 214, 196, 0.6);
    border-radius: 12px;
    background: rgba(255, 248, 238, 0.6);
    color: #6f6253;
    font-size: 12.5px;
    line-height: 1.65;
}
body.page-messages .pm-input,
body.page-messages .pm-textarea {
    box-sizing: border-box;
    width: 100%;
    padding: 8px 12px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
    font-family: inherit;
}
body.page-messages .pm-field:not(.pm-field--block) .pm-input {
    flex: 1 1 auto;
}
body.page-messages .pm-textarea {
    resize: vertical;
    line-height: 1.6;
}
body.page-messages .pm-input:focus,
body.page-messages .pm-textarea:focus {
    outline: none;
    border-color: rgba(214, 150, 86, 0.75);
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.2);
}
body.page-messages .pm-form__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
}
body.page-messages .pm-check {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #7a6a58;
    font-size: 12.5px;
    cursor: pointer;
}
body.page-messages .pm-check input {
    accent-color: #d6964e;
}

/* 短讯箱管理 */
body.page-messages .pm-boxes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
}
body.page-messages .pm-box-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
/* 卡片内表单也做成纵向 flex，否则里面多个输入框（添加/编辑短讯箱）会贴在一起没间距 */
body.page-messages .pm-box-card form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
body.page-messages .pm-box-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    background: none;
    color: #3f3022;
    font-size: 14.5px;
    font-weight: 700;
}
body.page-messages .pm-box-card__title i {
    color: #d3923f;
    font-size: 14px;
}
body.page-messages .pm-box-card__note {
    margin: 0 0 4px;
    color: #9a8872;
    font-size: 12px;
    line-height: 1.6;
}
body.page-messages .pm-box-card__foot {
    margin-top: 4px;
}

@media (max-width: 640px) {
    body.page-messages .pm-item__user {
        display: none;
    }
    body.page-messages .pm-nav__tab--manage,
    body.page-messages .pm-actions__group--system {
        margin-left: 0;
    }
    body.page-messages .pm-view__ops {
        margin-left: 0;
    }
}

/* ==========================================================================
 * 作弊者列表（cheaterbox.php）
 *
 * 参考短讯页的轻量 hero / 工具栏 / 卡片列表，保留管理页需要的宽表信息密度。
 * ========================================================================== */
body.page-cheaterbox .cheaterbox-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-cheaterbox #outer > table.main:has(.cheaterbox-page) {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-cheaterbox #outer > table.main:has(.cheaterbox-page) > tbody > tr > td.embedded {
    padding-right: 12px !important;
    padding-left: 12px !important;
}
body.page-cheaterbox .cheaterbox-hero {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    padding: 0 2px;
}
body.page-cheaterbox .cheaterbox-hero__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    background: rgba(244, 191, 138, 0.28);
    color: #c78340;
    font-size: 13px;
}
body.page-cheaterbox .cheaterbox-hero__title {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding: 0;
    background: none;
    color: #4b3a28;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.03em;
}
body.page-cheaterbox .cheaterbox-hero__title span {
    padding: 1px 6px;
    border-radius: 999px;
    background: rgba(254, 240, 240, 0.95);
    color: #b94545;
    font-size: 10px;
    letter-spacing: 0.04em;
}
body.page-cheaterbox .cheaterbox-hero__sub {
    margin: 2px 0 0;
    color: #a08e78;
    font-size: 11.5px;
    line-height: 1.4;
}
body.page-cheaterbox .cheaterbox-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(224, 208, 184, 0.7);
}
body.page-cheaterbox .cheaterbox-search,
body.page-cheaterbox .cheaterbox-actions,
body.page-cheaterbox .cheaterbox-actions__buttons,
body.page-cheaterbox .cheaterbox-checkall {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
body.page-cheaterbox .cheaterbox-search__field {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 220px;
}
body.page-cheaterbox .cheaterbox-search__field i {
    position: absolute;
    left: 12px;
    color: #c7a37a;
    font-size: 13px;
    pointer-events: none;
}
body.page-cheaterbox .cheaterbox-input {
    box-sizing: border-box;
    width: 100%;
    height: 34px;
    padding: 6px 12px 6px 32px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
}
body.page-cheaterbox .cheaterbox-input:focus {
    outline: none;
    border-color: rgba(214, 150, 86, 0.75);
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.2);
}
body.page-cheaterbox .cheaterbox-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    box-sizing: border-box;
    height: 30px;
    padding: 0 14px;
    border: 1px solid rgba(229, 214, 191, 0.85);
    border-radius: 999px;
    background: rgba(255, 247, 235, 0.95);
    color: #8a5518 !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none !important;
    cursor: pointer;
    transition: color 0.16s ease, background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}
body.page-cheaterbox .cheaterbox-btn:hover {
    border-color: rgba(208, 186, 152, 0.95);
    background: #fff7eb;
    color: #7a572d !important;
}
body.page-cheaterbox .cheaterbox-btn--primary {
    height: 34px;
    min-width: 84px;
    border: 0;
    background: rgba(245, 233, 214, 0.74);
    color: #7a572d !important;
}
body.page-cheaterbox .cheaterbox-btn--ghost {
    height: 34px;
    background: rgba(255, 255, 255, 0.85);
    color: #7a6a58 !important;
}
body.page-cheaterbox .cheaterbox-btn--danger {
    border-color: rgba(216, 159, 159, 0.72);
    background: rgba(254, 240, 240, 0.95);
    color: #a64545 !important;
}
body.page-cheaterbox .cheaterbox-summary {
    color: #9a8872;
    font-size: 12px;
}
body.page-cheaterbox .cheaterbox-summary span {
    color: #6f3a00;
    font-weight: 800;
}
body.page-cheaterbox .cheaterbox-list {
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}
body.page-cheaterbox .cheaterbox-list__head,
body.page-cheaterbox .cheaterbox-row {
    display: grid;
    grid-template-columns: minmax(140px, 0.8fr) minmax(260px, 2fr) minmax(300px, 1.6fr) minmax(100px, 0.7fr) 54px;
    align-items: stretch;
}
body.page-cheaterbox .cheaterbox-list__head {
    background: rgba(255, 248, 238, 0.78);
    color: #9a8872;
    font-size: 12px;
    font-weight: 700;
}
body.page-cheaterbox .cheaterbox-list__head span {
    padding: 10px 14px;
}
body.page-cheaterbox .cheaterbox-row {
    position: relative;
    border-top: 1px solid rgba(232, 222, 207, 0.7);
    transition: background-color 0.16s ease;
}
body.page-cheaterbox .cheaterbox-row:hover {
    background: rgba(255, 248, 238, 0.62);
}
body.page-cheaterbox .cheaterbox-row.is-open::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, #f0a35a, #d77f2f);
}
body.page-cheaterbox .cheaterbox-cell {
    min-width: 0;
    padding: 12px 14px;
    border-left: 1px solid rgba(232, 222, 207, 0.58);
}
body.page-cheaterbox .cheaterbox-cell:first-child {
    border-left: 0;
}
body.page-cheaterbox .cheaterbox-user,
body.page-cheaterbox .cheaterbox-torrent,
body.page-cheaterbox .cheaterbox-cell--status {
    color: #4a3a29;
    font-size: 13px;
    font-weight: 700;
}
body.page-cheaterbox .cheaterbox-user {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}
body.page-cheaterbox .cheaterbox-user__line {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}
body.page-cheaterbox .cheaterbox-user__avatar {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 1px solid rgba(224, 208, 184, 0.8);
    border-radius: 50%;
    background: #fff;
    object-fit: cover;
}
body.page-cheaterbox .cheaterbox-dealtby__avatar {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 1px solid rgba(224, 208, 184, 0.8);
    border-radius: 50%;
    background: #fff;
    object-fit: cover;
}
body.page-cheaterbox .cheaterbox-user__name {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}
body.page-cheaterbox .cheaterbox-user__time,
body.page-cheaterbox .cheaterbox-comment,
body.page-cheaterbox .cheaterbox-muted,
body.page-cheaterbox .cheaterbox-dealtby {
    color: #9a8872;
    font-size: 11.5px;
    font-weight: 400;
    line-height: 1.45;
}
body.page-cheaterbox .cheaterbox-hit {
    display: inline-flex;
    width: fit-content;
    margin-top: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(255, 247, 235, 0.95);
    color: #9a571a;
    font-size: 11.5px;
    font-weight: 700;
}
body.page-cheaterbox .cheaterbox-torrent {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-cheaterbox .cheaterbox-torrent a {
    color: #6f3a00 !important;
    text-decoration: none !important;
}
body.page-cheaterbox .cheaterbox-torrent a:hover {
    color: #b06a1d !important;
    text-decoration: underline !important;
}
body.page-cheaterbox .cheaterbox-comment {
    margin-top: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-cheaterbox .cheaterbox-cell--metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}
body.page-cheaterbox .cheaterbox-metric {
    min-width: 0;
}
body.page-cheaterbox .cheaterbox-metric__label {
    display: block;
    color: #a3937e;
    font-size: 11px;
    line-height: 1.35;
}
body.page-cheaterbox .cheaterbox-metric__value {
    display: block;
    margin-top: 1px;
    color: #5f4e3e;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}
body.page-cheaterbox .cheaterbox-metric__value small {
    display: block;
    margin-top: 1px;
    color: #a3937e;
    font-size: 11px;
    font-weight: 500;
}
body.page-cheaterbox .cheaterbox-cell--status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
}
body.page-cheaterbox .cheaterbox-dealtby {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    white-space: nowrap;
}
body.page-cheaterbox .cheaterbox-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 800;
}
body.page-cheaterbox .cheaterbox-status--done {
    background: rgba(231, 246, 232, 0.95);
    color: #3d8a43;
}
body.page-cheaterbox .cheaterbox-status--open {
    background: rgba(254, 240, 240, 0.95);
    color: #a64545;
}
body.page-cheaterbox .cheaterbox-cell--check {
    display: flex;
    align-items: center;
    justify-content: center;
}
body.page-cheaterbox .cheaterbox-check {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
    border: 1.5px solid rgba(199, 163, 122, 0.85);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
body.page-cheaterbox .cheaterbox-check:hover {
    border-color: #d6964e;
}
body.page-cheaterbox .cheaterbox-check:checked {
    border-color: #d6964e;
    background-color: #d6964e;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.4 6.2l2.4 2.4 4.8-5.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 11px 11px;
}
body.page-cheaterbox .cheaterbox-actions {
    justify-content: space-between;
    padding: 10px 2px;
}
body.page-cheaterbox .cheaterbox-checkall {
    color: #7a6a58;
    font-size: 12.5px;
    cursor: pointer;
}
body.page-cheaterbox .cheaterbox-pager {
    margin: 0 0 12px;
    color: #8a7a66;
    font-size: 12px;
}
body.page-cheaterbox .cheaterbox-pager--bottom {
    margin: 14px 0 0;
}
body.page-cheaterbox .cheaterbox-pager a {
    color: #b06a1d;
}
body.page-cheaterbox .cheaterbox-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 44px 20px;
    border: 1px dashed rgba(214, 184, 142, 0.7);
    border-radius: 16px;
    background: rgba(255, 252, 247, 0.6);
    color: #a3937e;
    font-size: 13px;
}
body.page-cheaterbox .cheaterbox-empty i {
    font-size: 30px;
    color: rgba(214, 184, 142, 0.85);
}

@media (max-width: 980px) {
    body.page-cheaterbox .cheaterbox-list__head {
        display: none;
    }
    body.page-cheaterbox .cheaterbox-row {
        grid-template-columns: minmax(0, 1fr) 54px;
    }
    body.page-cheaterbox .cheaterbox-cell {
        border-left: 0;
        border-top: 1px solid rgba(232, 222, 207, 0.58);
    }
    body.page-cheaterbox .cheaterbox-cell--suspect {
        border-top: 0;
    }
    body.page-cheaterbox .cheaterbox-cell--check {
        grid-column: 2;
        grid-row: 1 / span 4;
        border-left: 1px solid rgba(232, 222, 207, 0.58);
        border-top: 0;
    }
}

/* ==========================================================================
 * 举报列表（reports.php）
 *
 * 与作弊者列表一致的轻量管理页：头像用户行、类型徽章、原因摘要和批量操作。
 * ========================================================================== */
body.page-reports .reports-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-reports #outer > table.main:has(.reports-page) {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-reports #outer > table.main:has(.reports-page) > tbody > tr > td.embedded {
    padding-right: var(--site-content-inline-gap, 26px) !important;
    padding-left: var(--site-content-inline-gap, 26px) !important;
}
body.page-reports .reports-hero {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    padding: 0 2px;
}
body.page-reports .reports-hero__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    background: rgba(244, 191, 138, 0.28);
    color: #c78340;
    font-size: 13px;
}
body.page-reports .reports-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #4b3a28;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.03em;
}
body.page-reports .reports-hero__sub {
    margin: 2px 0 0;
    color: #a08e78;
    font-size: 11.5px;
    line-height: 1.4;
}
body.page-reports .reports-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin: 0 0 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(224, 208, 184, 0.7);
}
body.page-reports .reports-summary {
    color: #9a8872;
    font-size: 12px;
}
body.page-reports .reports-summary span {
    color: #6f3a00;
    font-weight: 800;
}
body.page-reports .reports-list {
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}
body.page-reports .reports-list__head,
body.page-reports .reports-row {
    display: grid;
    grid-template-columns: minmax(140px, 0.8fr) minmax(260px, 1.7fr) minmax(260px, 1.6fr) minmax(110px, 0.75fr) 112px;
    align-items: stretch;
}
body.page-reports .reports-list__head {
    background: rgba(255, 248, 238, 0.78);
    color: #9a8872;
    font-size: 12px;
    font-weight: 700;
}
body.page-reports .reports-list__head span {
    padding: 10px 14px;
}
body.page-reports .reports-row {
    position: relative;
    border-top: 1px solid rgba(232, 222, 207, 0.7);
    transition: background-color 0.16s ease;
}
body.page-reports .reports-row:hover {
    background: rgba(255, 248, 238, 0.62);
}
body.page-reports .reports-row.is-open::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, #f0a35a, #d77f2f);
}
body.page-reports .reports-cell {
    min-width: 0;
    padding: 12px 14px;
    border-left: 1px solid rgba(232, 222, 207, 0.58);
}
body.page-reports .reports-cell:first-child {
    border-left: 0;
}
body.page-reports .reports-reporter {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
}
body.page-reports .reports-user,
body.page-reports .reports-dealtby {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    white-space: nowrap;
}
body.page-reports .reports-user__avatar,
body.page-reports .reports-dealtby__avatar {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 1px solid rgba(224, 208, 184, 0.8);
    border-radius: 50%;
    background: #fff;
    object-fit: cover;
}
body.page-reports .reports-user__name,
body.page-reports .reports-dealtby__name {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}
body.page-reports .reports-time,
body.page-reports .reports-muted,
body.page-reports .reports-dealtby {
    color: #9a8872;
    font-size: 11.5px;
    font-weight: 400;
    line-height: 1.45;
}
body.page-reports .reports-cell--target {
    display: flex;
    align-items: center;
    gap: 8px;
}
body.page-reports .reports-type {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(255, 247, 235, 0.95);
    color: #9a571a;
    font-size: 11.5px;
    font-weight: 700;
}
body.page-reports .reports-type--torrent,
body.page-reports .reports-type--comment {
    background: rgba(255, 247, 235, 0.95);
    color: #9a571a;
}
body.page-reports .reports-type--user,
body.page-reports .reports-type--post {
    background: rgba(239, 245, 255, 0.95);
    color: #4b6f9d;
}
body.page-reports .reports-target {
    min-width: 0;
    color: #4a3a29;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-reports .reports-target a {
    color: #6f3a00 !important;
    text-decoration: none !important;
}
body.page-reports .reports-target a:hover {
    color: #b06a1d !important;
    text-decoration: underline !important;
}
body.page-reports .reports-cell--reason {
    color: #6f6253;
    font-size: 12.5px;
    line-height: 1.55;
}
body.page-reports .reports-cell--status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
}
body.page-reports .reports-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 800;
}
body.page-reports .reports-status--done {
    background: rgba(231, 246, 232, 0.95);
    color: #3d8a43;
}
body.page-reports .reports-status--open {
    background: rgba(254, 240, 240, 0.95);
    color: #a64545;
}
body.page-reports .reports-cell--actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
body.page-reports .reports-check {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
    border: 1.5px solid rgba(199, 163, 122, 0.85);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
body.page-reports .reports-check:hover {
    border-color: #d6964e;
}
body.page-reports .reports-check:checked {
    border-color: #d6964e;
    background-color: #d6964e;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.4 6.2l2.4 2.4 4.8-5.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 11px 11px;
}
body.page-reports .reports-reply {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 24px;
    padding: 0 10px;
    border: 1px solid rgba(229, 214, 191, 0.85);
    border-radius: 999px;
    background: rgba(255, 247, 235, 0.95);
    color: #8a5518 !important;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
}
body.page-reports .reports-reply:hover {
    border-color: rgba(208, 186, 152, 0.95);
    background: #fff7eb;
    color: #7a572d !important;
}
body.page-reports .reports-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 2px;
}
body.page-reports .reports-actions__buttons,
body.page-reports .reports-checkall {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
body.page-reports .reports-checkall {
    color: #7a6a58;
    font-size: 12.5px;
    cursor: pointer;
}
body.page-reports .reports-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: 30px;
    padding: 0 14px;
    border: 1px solid rgba(229, 214, 191, 0.85);
    border-radius: 999px;
    background: rgba(255, 247, 235, 0.95);
    color: #8a5518 !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
}
body.page-reports .reports-btn--danger {
    border-color: rgba(216, 159, 159, 0.72);
    background: rgba(254, 240, 240, 0.95);
    color: #a64545 !important;
}
body.page-reports .reports-pager {
    margin: 0 0 12px;
    color: #8a7a66;
    font-size: 12px;
}
body.page-reports .reports-pager--bottom {
    margin: 14px 0 0;
}
body.page-reports .reports-pager a {
    color: #b06a1d;
}
body.page-reports .reports-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 44px 20px;
    border: 1px dashed rgba(214, 184, 142, 0.7);
    border-radius: 16px;
    background: rgba(255, 252, 247, 0.6);
    color: #a3937e;
    font-size: 13px;
}
body.page-reports .reports-empty i {
    font-size: 30px;
    color: rgba(214, 184, 142, 0.85);
}

@media (max-width: 980px) {
    body.page-reports .reports-list__head {
        display: none;
    }
    body.page-reports .reports-row {
        grid-template-columns: minmax(0, 1fr) 112px;
    }
    body.page-reports .reports-cell {
        border-left: 0;
        border-top: 1px solid rgba(232, 222, 207, 0.58);
    }
    body.page-reports .reports-cell--reporter {
        border-top: 0;
    }
    body.page-reports .reports-cell--actions {
        grid-column: 2;
        grid-row: 1 / span 4;
        border-left: 1px solid rgba(232, 222, 207, 0.58);
        border-top: 0;
    }
}

/* ==========================================================================
 * 管理组信箱（staffbox.php）
 *
 * 与短讯页/举报页一致的轻量消息管理界面。
 * ========================================================================== */
body.page-staffbox .staffbox-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 980px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-staffbox #outer > table.main:has(.staffbox-page) {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-staffbox #outer > table.main:has(.staffbox-page) > tbody > tr > td.embedded {
    padding-right: var(--site-content-inline-gap, 26px) !important;
    padding-left: var(--site-content-inline-gap, 26px) !important;
}
body.page-staffbox .staffbox-hero {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 12px;
    padding: 0 2px;
}
body.page-staffbox .staffbox-hero__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    background: rgba(244, 191, 138, 0.28);
    color: #c78340;
    font-size: 13px;
}
body.page-staffbox .staffbox-hero__title {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0;
    padding: 0;
    background: none;
    color: #4b3a28;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.03em;
}
body.page-staffbox .staffbox-hero__title a {
    color: inherit !important;
    text-decoration: none !important;
}
body.page-staffbox .staffbox-hero__title span {
    min-width: 0;
    color: #7f6d59;
    font-size: 13px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-staffbox .staffbox-hero__sub {
    margin: 2px 0 0;
    color: #a08e78;
    font-size: 11.5px;
    line-height: 1.4;
}
body.page-staffbox .staffbox-toolbar {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin: 0 0 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(224, 208, 184, 0.7);
}
body.page-staffbox .staffbox-summary {
    color: #9a8872;
    font-size: 12px;
}
body.page-staffbox .staffbox-summary span {
    color: #6f3a00;
    font-weight: 800;
}
body.page-staffbox .staffbox-list {
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}
body.page-staffbox .staffbox-list__head,
body.page-staffbox .staffbox-row {
    display: grid;
    grid-template-columns: minmax(280px, 1.9fr) minmax(160px, 0.9fr) minmax(140px, 0.8fr) 54px;
    align-items: stretch;
}
body.page-staffbox .staffbox-list__head {
    background: rgba(255, 248, 238, 0.78);
    color: #9a8872;
    font-size: 12px;
    font-weight: 700;
}
body.page-staffbox .staffbox-list__head span {
    padding: 10px 14px;
}
body.page-staffbox .staffbox-row {
    position: relative;
    border-top: 1px solid rgba(232, 222, 207, 0.7);
    transition: background-color 0.16s ease;
}
body.page-staffbox .staffbox-row:hover {
    background: rgba(255, 248, 238, 0.62);
}
body.page-staffbox .staffbox-row.is-open::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, #f0a35a, #d77f2f);
}
body.page-staffbox .staffbox-cell {
    min-width: 0;
    padding: 12px 14px;
    border-left: 1px solid rgba(232, 222, 207, 0.58);
}
body.page-staffbox .staffbox-cell:first-child {
    border-left: 0;
}
body.page-staffbox .staffbox-cell--subject {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
body.page-staffbox .staffbox-subject {
    color: #4a3a29 !important;
    font-size: 13.5px;
    font-weight: 700;
    text-decoration: none !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-staffbox .staffbox-subject:hover {
    color: #b06a1d !important;
    text-decoration: underline !important;
}
body.page-staffbox .staffbox-time {
    color: #9a8872;
    font-size: 11.5px;
    line-height: 1.45;
}
body.page-staffbox .staffbox-user,
body.page-staffbox .staffbox-answeredby {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    white-space: nowrap;
}
body.page-staffbox .staffbox-user__avatar,
body.page-staffbox .staffbox-answeredby__avatar {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border: 1px solid rgba(224, 208, 184, 0.8);
    border-radius: 50%;
    background: #fff;
    object-fit: cover;
}
body.page-staffbox .staffbox-user__name,
body.page-staffbox .staffbox-answeredby__name {
    min-width: 0;
}
body.page-staffbox .staffbox-user--system i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(244, 191, 138, 0.22);
    color: #c78340;
    font-size: 10px;
}
body.page-staffbox .staffbox-cell--sender,
body.page-staffbox .staffbox-cell--status,
body.page-staffbox .staffbox-cell--check {
    display: flex;
    align-items: center;
}
body.page-staffbox .staffbox-cell--status {
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-width: 0;
}
body.page-staffbox .staffbox-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 800;
}
body.page-staffbox .staffbox-status--done {
    background: rgba(231, 246, 232, 0.95);
    color: #3d8a43;
}
body.page-staffbox .staffbox-status--open {
    background: rgba(254, 240, 240, 0.95);
    color: #a64545;
}
body.page-staffbox .staffbox-cell--check {
    justify-content: center;
}
body.page-staffbox .staffbox-check {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin: 0;
    -webkit-appearance: none;
    appearance: none;
    border: 1.5px solid rgba(199, 163, 122, 0.85);
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
body.page-staffbox .staffbox-check:hover {
    border-color: #d6964e;
}
body.page-staffbox .staffbox-check:checked {
    border-color: #d6964e;
    background-color: #d6964e;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.4 6.2l2.4 2.4 4.8-5.2'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 11px 11px;
}
body.page-staffbox .staffbox-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 2px;
}
body.page-staffbox .staffbox-actions__buttons,
body.page-staffbox .staffbox-checkall {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
body.page-staffbox .staffbox-checkall {
    color: #7a6a58;
    font-size: 12.5px;
    cursor: pointer;
}
body.page-staffbox .staffbox-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    height: 30px;
    padding: 0 14px;
    border: 1px solid rgba(229, 214, 191, 0.85);
    border-radius: 999px;
    background: rgba(255, 247, 235, 0.95);
    color: #8a5518 !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none !important;
    cursor: pointer;
}
body.page-staffbox .staffbox-btn:hover {
    border-color: rgba(208, 186, 152, 0.95);
    background: #fff7eb;
    color: #7a572d !important;
}
body.page-staffbox .staffbox-btn--danger {
    border-color: rgba(216, 159, 159, 0.72);
    background: rgba(254, 240, 240, 0.95);
    color: #a64545 !important;
}
body.page-staffbox .staffbox-pager {
    margin: 0 0 12px;
    color: #8a7a66;
    font-size: 12px;
}
body.page-staffbox .staffbox-pager--bottom {
    margin: 14px 0 0;
}
body.page-staffbox .staffbox-pager a {
    color: #b06a1d;
}
body.page-staffbox .staffbox-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 44px 20px;
    border: 1px dashed rgba(214, 184, 142, 0.7);
    border-radius: 16px;
    background: rgba(255, 252, 247, 0.6);
    color: #a3937e;
    font-size: 13px;
}
body.page-staffbox .staffbox-empty i {
    font-size: 30px;
    color: rgba(214, 184, 142, 0.85);
}
body.page-staffbox .staffbox-view {
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 250, 243, 0.85));
    box-shadow: 0 10px 26px rgba(49, 66, 96, 0.05), 0 2px 6px rgba(49, 66, 96, 0.03);
    overflow: hidden;
}
body.page-staffbox .staffbox-view__head {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    padding: 16px 22px;
    border-bottom: 1px solid rgba(226, 214, 196, 0.7);
    background: rgba(255, 248, 238, 0.5);
}
body.page-staffbox .staffbox-view__meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
body.page-staffbox .staffbox-view__label {
    color: #a3937e;
    font-size: 11.5px;
}
body.page-staffbox .staffbox-view__value {
    color: #4a3a29;
    font-size: 13px;
    font-weight: 600;
}
body.page-staffbox .staffbox-view__body,
body.page-staffbox .staffbox-view__answer {
    padding: 22px;
    color: #4f4438;
    font-size: 13.5px;
    line-height: 1.75;
}
body.page-staffbox .staffbox-view__answer {
    border-top: 1px solid rgba(226, 214, 196, 0.7);
    background: rgba(255, 252, 247, 0.54);
}
body.page-staffbox .staffbox-view__answer h2 {
    margin: 0 0 10px;
    padding: 0;
    background: none;
    color: #4b3a28;
    font-size: 13.5px;
    font-weight: 800;
}
body.page-staffbox .staffbox-view__foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 14px 22px;
    border-top: 1px solid rgba(226, 214, 196, 0.7);
    background: rgba(255, 252, 247, 0.6);
}

@media (max-width: 760px) {
    body.page-staffbox .staffbox-list__head {
        display: none;
    }
    body.page-staffbox .staffbox-row {
        grid-template-columns: minmax(0, 1fr) 54px;
    }
    body.page-staffbox .staffbox-cell {
        border-left: 0;
        border-top: 1px solid rgba(232, 222, 207, 0.58);
    }
    body.page-staffbox .staffbox-cell--subject {
        border-top: 0;
    }
    body.page-staffbox .staffbox-cell--check {
        grid-column: 2;
        grid-row: 1 / span 3;
        border-left: 1px solid rgba(232, 222, 207, 0.58);
        border-top: 0;
    }
}

/* ==========================================================================
 * 爆米花中心（mybonus.php）
 *
 * 保留原兑换表单结构，通过页面级样式把长表格整理成兑换卡片列表。
 * ========================================================================== */
body.page-mybonus .mybonus-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}

/* 两栏布局：左栏(主) + 右栏(状态面板 sticky) */
body.page-mybonus .mybonus-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 20px;
    align-items: start;
}
body.page-mybonus .mybonus-main {
    min-width: 0;
}
body.page-mybonus .mybonus-side {
    min-width: 0;
}
body.page-mybonus .mybonus-side__sticky {
    position: sticky;
    top: 80px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
body.page-mybonus .mybonus-side__card {
    box-sizing: border-box;
    margin: 0;
    padding: 18px 18px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 14px;
    background: #fff;
}
body.page-mybonus .mybonus-side__label {
    color: #9b8874;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin: 0 0 6px;
}
/* 余额卡（顶部高亮） */
body.page-mybonus .mybonus-side__balance {
    background: linear-gradient(135deg, #fffdf9 0%, #fff4e1 100%);
    border-color: rgba(214, 148, 80, 0.35);
}
body.page-mybonus .mybonus-side__balance-value {
    color: #d59043;
    font-size: 26px;
    font-weight: 700;
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
}
/* 当前每小时产出 */
body.page-mybonus .mybonus-side__rate .mybonus-side__value {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    color: #2d2419;
    font-size: 26px;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
body.page-mybonus .mybonus-side__rate .mybonus-side__value i {
    color: #d59043;
    font-size: 18px;
}
body.page-mybonus .mybonus-side__rate .mybonus-side__value > span {
    color: #b7a187;
    font-size: 12px;
    font-weight: 600;
}
body.page-mybonus .mybonus-side__hint {
    margin: 10px 0 0;
    padding-top: 10px;
    border-top: 1px dashed rgba(229, 201, 168, 0.5);
    color: #9b8874;
    font-size: 12px;
    line-height: 1.6;
}
body.page-mybonus .mybonus-side__hint b {
    color: #d59043;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
body.page-mybonus .mybonus-side__hint img.star {
    vertical-align: -1px;
}
/* 做种进度 */
body.page-mybonus .mybonus-side__progress-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 8px;
}
body.page-mybonus .mybonus-side__progress-head span {
    color: #9b8874;
    font-size: 12px;
    font-weight: 600;
}
body.page-mybonus .mybonus-side__progress-head strong {
    color: #d59043;
    font-size: 16px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
body.page-mybonus .mybonus-side__progress-head strong.loadbarred {
    color: #e3724e;
}
body.page-mybonus .mybonus-side__progress-head strong.loadbaryellow {
    color: #c89020;
}
body.page-mybonus .mybonus-side__progress-head strong.loadbargreen {
    color: #5aa86a;
}
body.page-mybonus .mybonus-side__progress-track {
    width: 100%;
    height: 8px;
    border-radius: 999px;
    background: rgba(214, 148, 80, 0.12);
    overflow: hidden;
}
body.page-mybonus .mybonus-side__progress-fill {
    height: 100%;
    border-radius: 999px;
    transition: width 0.4s ease;
}
body.page-mybonus .mybonus-side__progress-fill.loadbarred {
    background: linear-gradient(90deg, #e3724e, #f0a07a);
}
body.page-mybonus .mybonus-side__progress-fill.loadbaryellow {
    background: linear-gradient(90deg, #e0a83a, #f3cd72);
}
body.page-mybonus .mybonus-side__progress-fill.loadbargreen {
    background: linear-gradient(90deg, #5aa86a, #8fce86);
}
body.page-mybonus .mybonus-side__progress-hint {
    margin-top: 8px;
    color: #9b8874;
    font-size: 11px;
    font-weight: 500;
    text-align: right;
}
body.page-mybonus .mybonus-side__progress-hint b {
    color: #d59043;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
}
/* 关键指标：单列行式列表，每行 标签+数字 一目了然 */
body.page-mybonus .mybonus-side__stats {
    padding: 4px 14px;
}
body.page-mybonus .mybonus-side__stats-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
}
body.page-mybonus .mybonus-side__stat {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid rgba(229, 201, 168, 0.32);
}
body.page-mybonus .mybonus-side__stat:last-child {
    border-bottom: 0;
}
body.page-mybonus .mybonus-side__stat-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #7c6a55;
    font-size: 13px;
    font-weight: 500;
    margin: 0;
    letter-spacing: 0;
    text-transform: none;
}
body.page-mybonus .mybonus-side__stat-label i {
    color: #b99b78;
    font-size: 13px;
    width: 14px;
    text-align: center;
    opacity: 0.9;
}
body.page-mybonus .mybonus-side__stat-value {
    display: inline-grid;
    grid-template-columns: auto 20px;
    align-items: baseline;
    gap: 3px;
    color: #2d2419;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
    white-space: nowrap;
}
body.page-mybonus .mybonus-side__stat-num {
    text-align: right;
}
body.page-mybonus .mybonus-side__stat-unit {
    text-align: left;
}
body.page-mybonus .mybonus-side__stat-value small,
body.page-mybonus .mybonus-side__stat-value .unit {
    color: #a59279;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.02em;
}
body.page-mybonus .mybonus-side__stats-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin: 0;
    padding: 0;
}
body.page-mybonus .mybonus-side__stats-list > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 0;
    border-bottom: 1px solid rgba(229, 201, 168, 0.32);
}
body.page-mybonus .mybonus-side__stats-list > div:last-child {
    border-bottom: 0;
}
body.page-mybonus .mybonus-side__stats-list dt {
    margin: 0;
    color: #9b8874;
    font-size: 12px;
    font-weight: 500;
}
body.page-mybonus .mybonus-side__stats-list dd {
    margin: 0;
    color: #2d2419;
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    text-align: right;
}
/* 展开"更多明细" */
body.page-mybonus .mybonus-side__stats-more {
    margin-top: 12px;
    padding-top: 4px;
    border-top: 1px solid rgba(229, 201, 168, 0.32);
}
body.page-mybonus .mybonus-side__stats-more > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    color: #9b8874;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}
body.page-mybonus .mybonus-side__stats-more > summary::-webkit-details-marker {
    display: none;
}
body.page-mybonus .mybonus-side__stats-more > summary i {
    color: #b7a187;
    font-size: 11px;
    transition: transform 0.2s ease;
}
body.page-mybonus .mybonus-side__stats-more[open] > summary i {
    transform: rotate(180deg);
}
body.page-mybonus .mybonus-side__stats-more > summary:hover {
    color: #d59043;
}
body.page-mybonus .mybonus-side__stats-more > summary:hover i {
    color: #d59043;
}

/* 规则区跨两栏满宽 */
body.page-mybonus .mybonus-rules-wrap {
    grid-column: 1 / -1;
    min-width: 0;
}

/* 窄屏：右栏折到下方 */
@media (max-width: 1080px) {
    body.page-mybonus .mybonus-layout {
        grid-template-columns: minmax(0, 1fr);
    }
    body.page-mybonus .mybonus-side__sticky {
        position: static;
    }
}
body.page-mybonus #outer > table.main:has(.mybonus-page) {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-mybonus #outer > table.main:has(.mybonus-page) > tbody > tr > td.embedded {
    padding-right: var(--site-content-inline-gap, 26px) !important;
    padding-left: var(--site-content-inline-gap, 26px) !important;
}
body.page-mybonus .mybonus-hero {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 14px;
    padding: 14px 18px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 14px;
    background: #fff;
    box-shadow: none;
}
body.page-mybonus .mybonus-hero__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 10px;
    background: rgba(214, 148, 80, 0.12);
    color: #d59043;
    font-size: 14px;
    box-shadow: none;
}
body.page-mybonus .mybonus-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
}
body.page-mybonus .mybonus-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-mybonus .mybonus-hero__sub {
    margin: 4px 0 0;
    color: #9b8874;
    font-size: 13px;
    line-height: 1.55;
    font-weight: 400;
}
body.page-mybonus .mybonus-hero__balance {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 2px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
    box-shadow: none;
    text-align: right;
}
body.page-mybonus .mybonus-hero__balance-label {
    color: #9b8874;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
}
body.page-mybonus .mybonus-hero__balance-value {
    color: #d59043;
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
body.page-mybonus .mybonus-summary {
    box-sizing: border-box;
    margin: 0 0 12px;
    padding: 14px 18px;
    border: 1px solid rgba(226, 214, 196, 0.86);
    border-radius: 16px;
    background: rgba(255, 252, 247, 0.92);
    color: #735d45;
    text-align: center;
    box-shadow: 0 8px 20px rgba(73, 58, 38, 0.045);
}
body.page-mybonus .mybonus-summary__label,
body.page-mybonus .mybonus-summary__suffix {
    color: #7a6752;
    font-size: 13px;
}
body.page-mybonus .mybonus-summary__points {
    display: inline-flex;
    align-items: center;
    margin: 0 8px;
    color: #a05e1d;
    font-size: 20px;
    font-weight: 900;
    line-height: 1;
}
body.page-mybonus .mybonus-summary p {
    margin: 8px 0 0;
    color: #8b7660;
    font-size: 12px;
    font-weight: 700;
}
body.page-mybonus .mybonus-alert {
    display: flex;
    align-items: center;
    gap: 14px;
    box-sizing: border-box;
    margin: 0 0 14px;
    padding: 14px 20px;
    border: 1px solid rgba(213, 144, 67, 0.45);
    border-left: 4px solid #d59043;
    border-radius: 14px;
    background:
        radial-gradient(circle at top left, rgba(214, 148, 80, 0.14), transparent 35%),
        linear-gradient(135deg, rgba(255, 250, 240, 0.98), rgba(255, 244, 226, 0.95));
    color: #6f4a1d;
    text-align: left;
    box-shadow: 0 10px 24px rgba(191, 113, 36, 0.1), 0 2px 6px rgba(191, 113, 36, 0.05);
    animation: mybonus-alert-rise 0.45s ease both;
}
body.page-mybonus .mybonus-alert__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #d98a38, #f0bd72);
    color: #fff;
    font-size: 17px;
    box-shadow: 0 4px 10px rgba(191, 113, 36, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
body.page-mybonus .mybonus-alert__body {
    flex: 1 1 auto;
    color: #6f4a1d;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.55;
    letter-spacing: 0.01em;
}
body.page-mybonus .mybonus-alert__body b,
body.page-mybonus .mybonus-alert__body .striking {
    color: #a05f1d;
    font-weight: 900;
}
body.page-mybonus .mybonus-alert__body a {
    color: #a05f1d;
    text-decoration: underline;
    text-underline-offset: 2px;
}
@keyframes mybonus-alert-rise {
    0% { opacity: 0; transform: translateY(-6px); }
    100% { opacity: 1; transform: translateY(0); }
}
body.page-mybonus .mybonus-section-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin: 12px 2px 8px;
}
body.page-mybonus .mybonus-section-heading h2 {
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
}
body.page-mybonus .mybonus-section-heading__lead {
    display: flex;
    align-items: baseline;
    gap: 12px;
    min-width: 0;
}
body.page-mybonus .mybonus-section-heading__sub {
    margin: 0;
    color: #9b8874;
    font-size: 12px;
    line-height: 1.5;
    text-align: left;
}
body.page-mybonus .mybonus-section-heading p {
    margin: 0;
    color: #9b8874;
    font-size: 12px;
    line-height: 1.5;
    text-align: right;
}
body.page-mybonus .mybonus-section-heading p strong {
    color: #a05f1d;
    font-size: 13px;
    font-weight: 900;
}
body.page-mybonus .mybonus-section-heading__aside {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-shrink: 0;
}
body.page-mybonus .mybonus-section-heading__count {
    white-space: nowrap;
}
body.page-mybonus .mybonus-filter-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}
body.page-mybonus .mybonus-filter-toggle input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}
body.page-mybonus .mybonus-filter-toggle__track {
    position: relative;
    flex: 0 0 auto;
    width: 34px;
    height: 18px;
    border-radius: 999px;
    background: #e3d8c8;
    transition: background .2s ease;
}
body.page-mybonus .mybonus-filter-toggle__thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
    transition: transform .2s ease;
}
body.page-mybonus .mybonus-filter-toggle input:checked + .mybonus-filter-toggle__track {
    background: #d59043;
}
body.page-mybonus .mybonus-filter-toggle input:checked + .mybonus-filter-toggle__track .mybonus-filter-toggle__thumb {
    transform: translateX(16px);
}
body.page-mybonus .mybonus-filter-toggle input:focus-visible + .mybonus-filter-toggle__track {
    outline: 2px solid #d59043;
    outline-offset: 2px;
}
body.page-mybonus .mybonus-filter-toggle__text {
    color: #9b8874;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
body.page-mybonus .mybonus-filter-toggle input:checked ~ .mybonus-filter-toggle__text {
    color: #a05f1d;
}
body.page-mybonus .mybonus-card-grid.is-only-available > .mybonus-exchange-card.is-disabled {
    display: none;
}
body.page-mybonus .mybonus-exchange-list {
    display: grid;
    gap: 20px;
}
body.page-mybonus .mybonus-exchange-group {
    display: grid;
    gap: 10px;
}
body.page-mybonus .mybonus-exchange-group__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 2px;
}
body.page-mybonus .mybonus-exchange-group__heading h3 {
    margin: 0;
    padding: 0;
    background: none;
    color: #4a3a29;
    font-size: 14px;
    font-weight: 850;
}
body.page-mybonus .mybonus-exchange-group__heading span {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 9px;
    border-radius: 999px;
    background: rgba(214, 148, 80, 0.08);
    color: #9a6a34;
    font-size: 11px;
    font-weight: 800;
}
body.page-mybonus .mybonus-exchange-group--available .mybonus-exchange-group__heading span {
    background: rgba(213, 144, 67, 0.12);
    color: #a35f1d;
}
body.page-mybonus .mybonus-exchange-group__items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(246px, 1fr));
    gap: 12px;
    align-items: start;
}
body.page-mybonus .mybonus-exchange-card {
    box-sizing: border-box;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto 1fr auto;
    gap: 8px;
    align-items: stretch;
    width: 100%;
    min-height: 124px;
    margin: 0;
    padding: 18px 18px 16px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 14px;
    background: #fff;
    box-shadow: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
body.page-mybonus .mybonus-exchange-card.is-available {
    position: relative;
    border-color: rgba(213, 144, 67, 0.58);
    background: #fff;
    box-shadow: 0 6px 18px rgba(116, 79, 40, 0.10);
}
body.page-mybonus .mybonus-exchange-card.is-available:hover {
    border-color: rgba(213, 144, 67, 0.85);
    box-shadow: 0 10px 24px rgba(116, 79, 40, 0.16);
    transform: translateY(-1px);
}
body.page-mybonus .mybonus-exchange-card.is-disabled {
    border-color: rgba(232, 222, 207, 0.7);
    background: #fff;
    filter: none;
    opacity: 0.7;
}
body.page-mybonus .mybonus-exchange-card:hover {
    border-color: rgba(214, 148, 80, 0.5);
    box-shadow: 0 4px 14px rgba(116, 79, 40, 0.06);
    transform: none;
}
body.page-mybonus .mybonus-exchange-card.is-disabled:hover {
    border-color: rgba(214, 148, 80, 0.3);
    box-shadow: none;
    opacity: 0.85;
}
body.page-mybonus .mybonus-exchange-card__body {
    display: grid;
    align-content: start;
    gap: 6px;
    min-width: 0;
}
body.page-mybonus .mybonus-exchange-card__title {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0;
    padding-right: 4px;
}
body.page-mybonus .mybonus-exchange-card__title h2 {
    margin: 0 0 6px;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
}
body.page-mybonus .mybonus-exchange-card__title h2 {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    /* 长标题允许换行而非省略 */
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    word-break: break-word;
}
body.page-mybonus .mybonus-exchange-card__meta {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
}
body.page-mybonus .mybonus-exchange-card__title > span {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(214, 148, 80, 0.08);
    color: #9a6a34;
    font-size: 11px;
    font-weight: 800;
}
body.page-mybonus .mybonus-exchange-card__aside {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(96px, auto);
    grid-template-rows: auto;
    gap: 10px;
    align-items: center;
    padding-top: 10px;
    border-top: 1px solid rgba(229, 201, 168, 0.58);
}
body.page-mybonus .mybonus-exchange-card__points {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 3px;
    min-height: 34px;
    color: #9a571a;
    text-align: left;
}
body.page-mybonus .mybonus-exchange-card__points-label {
    order: -1;
    color: #b7a187;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
}
body.page-mybonus .mybonus-exchange-card__points strong {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #5f4e3e;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
    font-variant-numeric: tabular-nums;
}
/* 长价格区间（如 100–5,000,000）自动缩字号，避免压过卡片标题 */
body.page-mybonus .mybonus-exchange-card__points strong > span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
}
body.page-mybonus .mybonus-exchange-card--gift_1 .mybonus-exchange-card__points strong,
body.page-mybonus .mybonus-exchange-card--gift_2 .mybonus-exchange-card__points strong {
    font-size: 12px;
}
body.page-mybonus .mybonus-exchange-card__points strong i {
    color: #c9741f;
    font-size: 15px;
}
body.page-mybonus .mybonus-exchange-card__points strong > span {
    display: inline-block;
}
body.page-mybonus .mybonus-exchange-card__points small,
body.page-mybonus .mybonus-card-activity {
    display: block;
    margin-top: 3px;
    color: #c05339;
    font-size: 11px;
    font-weight: 700;
}
body.page-mybonus .mybonus-exchange-card input[type="text"],
body.page-mybonus .mybonus-exchange-card select {
    box-sizing: border-box;
    min-height: 30px;
    max-width: 100%;
    margin: 0;
    padding: 5px 9px;
    border: 1px solid rgba(229, 201, 168, 0.72);
    border-radius: 9px;
    background: #fff;
    color: #5f4e3e;
    font-size: 12px;
}
body.page-mybonus .mybonus-exchange-card input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 26px;
    padding: 0 14px;
    border: 1px solid rgba(214, 148, 80, 0.55);
    border-radius: 999px;
    background: linear-gradient(180deg, #ffffff, #fff7ed);
    color: #a4631f !important;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(154, 90, 28, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8);
    white-space: normal;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}
body.page-mybonus .mybonus-exchange-card input[type="submit"]:disabled {
    border-color: rgba(206, 192, 174, 0.7);
    background: rgba(243, 238, 230, 0.9);
    color: #ab9c88 !important;
    letter-spacing: 0.04em;
    box-shadow: none;
    cursor: not-allowed;
    opacity: 1;
    transform: none;
}
body.page-mybonus .mybonus-exchange-card__action {
    position: relative;
    justify-self: end;
}
body.page-mybonus .mybonus-exchange-card__action[data-disabled-reason]::after {
    position: absolute;
    right: 0;
    bottom: calc(100% + 9px);
    z-index: 5;
    box-sizing: border-box;
    width: max-content;
    max-width: 220px;
    padding: 7px 10px;
    border: 1px solid rgba(214, 148, 80, 0.22);
    border-radius: 10px;
    background: rgba(48, 38, 28, 0.94);
    color: #fffaf3;
    content: attr(data-disabled-reason);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.45;
    text-align: left;
    white-space: normal;
    box-shadow: 0 12px 28px rgba(60, 40, 15, 0.18);
    opacity: 0;
    pointer-events: none;
    transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
}
body.page-mybonus .mybonus-exchange-card__action[data-disabled-reason]::before {
    position: absolute;
    right: 22px;
    bottom: calc(100% + 4px);
    z-index: 6;
    width: 9px;
    height: 9px;
    background: rgba(48, 38, 28, 0.94);
    content: "";
    opacity: 0;
    pointer-events: none;
    transform: rotate(45deg) translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
}
body.page-mybonus .mybonus-exchange-card__action[data-disabled-reason]:hover::after,
body.page-mybonus .mybonus-exchange-card__action[data-disabled-reason]:hover::before {
    opacity: 1;
    transform: translateY(0);
}
body.page-mybonus .mybonus-exchange-card__action[data-disabled-reason]:hover::before {
    transform: rotate(45deg) translateY(0);
}
body.page-mybonus .mybonus-exchange-card.is-available input[type="submit"]:not(:disabled) {
    border: 1px solid rgba(214, 148, 80, 0.55);
    background: #fffaf3;
    color: #bf6a1f !important;
    text-shadow: none;
    box-shadow: none;
}
body.page-mybonus .mybonus-exchange-card.is-available input[type="submit"]:not(:disabled):hover {
    border-color: #d67b28;
    background: #d67b28;
    color: #fff !important;
    box-shadow: 0 2px 6px rgba(199, 117, 38, 0.2);
    transform: translateY(-1px);
}
body.page-mybonus .mybonus-exchange-card.is-available input[type="submit"]:not(:disabled):active {
    background: #c46f22;
    border-color: #c46f22;
    box-shadow: none;
    transform: translateY(0);
}
body.page-mybonus .mybonus-field-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
}
body.page-mybonus .mybonus-field-row > span {
    color: #8a5a2b;
    font-size: 12px;
    font-weight: 700;
}
body.page-mybonus .mybonus-field-row input[type="text"] {
    flex: 1 1 150px;
    min-width: 0;
}
body.page-mybonus .mybonus-inline-form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    max-width: none;
    margin-top: 10px;
    padding: 10px;
    border: 1px solid rgba(229, 201, 168, 0.58);
    border-radius: 13px;
    background: rgba(255, 253, 249, 0.72);
}
body.page-mybonus .mybonus-inline-form label {
    display: grid;
    gap: 5px;
    color: #6f5438;
    font-size: 12px;
    font-weight: 700;
}
body.page-mybonus .mybonus-inline-form label > span {
    color: #8a5a2b;
}
body.page-mybonus .mybonus-inline-form__wide {
    grid-column: auto;
}
body.page-mybonus .mybonus-inline-form__wide input[type="text"] {
    width: 100%;
}
body.page-mybonus .mybonus-field-pair {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
body.page-mybonus .mybonus-field-pair select {
    flex: 1 1 120px;
}
body.page-mybonus .mybonus-field-pair input[type="text"] {
    flex: 1 1 92px;
    min-width: 0;
}
body.page-mybonus .mybonus-inline-form small,
body.page-mybonus .mybonus-card-note {
    margin: 0;
    color: #9b7f61;
    font-size: 12px;
}
body.page-mybonus .mybonus-exchange-table,
body.page-mybonus .mybonus-exchange-table > tbody {
    display: block;
    width: 100% !important;
    border: 0 !important;
    border-collapse: collapse !important;
    border-spacing: 0;
    background: transparent !important;
    overflow: visible;
    box-shadow: none;
}
body.page-mybonus .mybonus-exchange-table > tbody {
    display: grid;
    gap: 12px;
}
body.page-mybonus .mybonus-table-title,
body.page-mybonus .mybonus-table-head {
    display: none;
}
body.page-mybonus .mybonus-table-summary,
body.page-mybonus .mybonus-table-alert,
body.page-mybonus .mybonus-option-row {
    display: grid;
    overflow: hidden;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 24px rgba(73, 58, 38, 0.05), 0 2px 6px rgba(73, 58, 38, 0.03);
}
body.page-mybonus .mybonus-table-summary > td,
body.page-mybonus .mybonus-table-alert > td {
    padding: 14px 18px !important;
    border: 0 !important;
    background: linear-gradient(135deg, rgba(255, 252, 247, 0.96), rgba(255, 247, 235, 0.84)) !important;
    color: #735d45;
    font-size: 13px;
    line-height: 1.7;
    text-align: center !important;
}
body.page-mybonus .mybonus-option-row {
    grid-template-columns: 54px minmax(0, 1fr) 132px 156px;
    align-items: stretch;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
body.page-mybonus .mybonus-option-row:hover {
    border-color: rgba(213, 178, 132, 0.9);
    box-shadow: 0 14px 30px rgba(95, 70, 38, 0.08), 0 3px 8px rgba(95, 70, 38, 0.04);
    transform: translateY(-1px);
}
body.page-mybonus .mybonus-option-row > td {
    box-sizing: border-box;
    min-width: 0;
    padding: 15px 16px;
    border: 0 !important;
    background: transparent !important;
    color: #5f4e3e;
    font-size: 13px;
    line-height: 1.6;
}
body.page-mybonus .mybonus-option-row > td:first-child {
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 248, 238, 0.82) !important;
}
body.page-mybonus .mybonus-option-row > td:first-child b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 10px;
    background: rgba(201, 126, 47, 0.12);
    color: #9a571a;
    font-size: 13px;
}
body.page-mybonus .mybonus-option-row > td:nth-child(2) {
    display: block;
    text-align: left !important;
}
body.page-mybonus .mybonus-option-row > td:nth-child(2),
body.page-mybonus .mybonus-option-row > td:nth-child(2) * {
    text-align: left !important;
}
body.page-mybonus .mybonus-option-row > td:nth-child(2).rowfollow {
    color: #634f3a;
    font-weight: 500;
}
body.page-mybonus .mybonus-option-row > td:nth-child(3),
body.page-mybonus .mybonus-option-row > td:nth-child(4) {
    display: flex;
    align-items: center;
    justify-content: center;
    border-left: 1px solid rgba(232, 222, 207, 0.72) !important;
    text-align: center !important;
}
body.page-mybonus .mybonus-option-row > td:nth-child(3) {
    color: #9a571a;
    font-size: 13px;
    font-weight: 800;
}
body.page-mybonus .mybonus-option-row > td h1 {
    margin: 0 0 6px;
    padding: 0;
    background: none;
    color: #4a3a29;
    font-size: 15px;
    font-weight: 800;
    line-height: 1.35;
}
body.page-mybonus .mybonus-option-row .rowfollow table {
    display: block;
    width: 100% !important;
    max-width: 560px;
    margin: 10px 0 0 !important;
    border: 1px solid rgba(226, 214, 196, 0.78) !important;
    border-collapse: separate !important;
    border-spacing: 0;
    border-radius: 12px;
    background: rgba(255, 251, 246, 0.72);
    float: none !important;
    clear: both;
    overflow: hidden;
}
body.page-mybonus .mybonus-option-row .rowfollow table tbody {
    display: block;
}
body.page-mybonus .mybonus-option-row .rowfollow table tr {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
body.page-mybonus .mybonus-option-row .rowfollow table td.embedded {
    display: block;
    padding: 10px 12px !important;
    border: 0 !important;
    border-top: 1px solid rgba(232, 222, 207, 0.58) !important;
    background: transparent !important;
}
body.page-mybonus .mybonus-option-row .rowfollow table td.embedded[colspan] {
    grid-column: 1 / -1;
}
body.page-mybonus .mybonus-option-row .rowfollow table tr:first-child td.embedded {
    border-top: 0 !important;
}
body.page-mybonus .mybonus-exchange-table input[type="text"],
body.page-mybonus .mybonus-exchange-table select {
    box-sizing: border-box;
    max-width: 100%;
    min-height: 28px;
    margin: 2px 6px;
    padding: 4px 8px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 8px;
    background: #fff;
    color: #5f4e3e;
    font-size: 12px;
}
body.page-mybonus .mybonus-exchange-table input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 34px;
    padding: 0 16px;
    border: 1px solid rgba(214, 148, 80, 0.38);
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(255, 242, 222, 0.98), rgba(255, 230, 192, 0.9));
    color: #8a5518 !important;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
    white-space: normal;
}
body.page-mybonus .mybonus-exchange-table input[type="submit"]:disabled {
    cursor: not-allowed;
    opacity: 0.52;
}
body.page-mybonus .mybonus-rules {
    box-sizing: border-box;
    width: 100% !important;
    margin: 16px auto 0;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.95), rgba(255, 250, 243, 0.85));
    box-shadow: 0 10px 26px rgba(49, 66, 96, 0.05), 0 2px 6px rgba(49, 66, 96, 0.03);
    overflow: hidden;
}
body.page-mybonus .mybonus-rules td {
    border: 0 !important;
    padding: 16px 20px;
    color: #5f4e3e;
    font-size: 13px;
    line-height: 1.7;
}
body.page-mybonus .mybonus-rules .colhead {
    background: linear-gradient(135deg, rgba(255, 248, 238, 0.92), rgba(255, 252, 247, 0.82));
    color: #4b3a28;
    font-size: 15px;
    font-weight: 800;
}
body.page-mybonus .mybonus-rules .text {
    background:
        radial-gradient(circle at top right, rgba(244, 191, 138, 0.12), transparent 30%),
        rgba(255, 255, 255, 0.96);
}
body.page-mybonus .mybonus-rules h1 {
    margin: 12px 0 8px;
    padding: 0;
    background: none;
    color: #403426;
    font-size: 15px;
    font-weight: 850;
}
body.page-mybonus .mybonus-rules ul {
    margin: 10px 0 16px 0;
    padding: 0;
    list-style: none;
}
body.page-mybonus .mybonus-rules li {
    position: relative;
    margin: 0;
    padding: 4px 0 4px 18px;
    line-height: 1.7;
    color: #4a3f30;
}
body.page-mybonus .mybonus-rules li::before {
    content: "";
    position: absolute;
    left: 5px;
    top: 13px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #d59043;
    opacity: 0.65;
}
body.page-mybonus .mybonus-rules li b,
body.page-mybonus .mybonus-rules li strong {
    color: #bf6a1f;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
/* 仅核心公式列表使用斑马纹 + 卡片化条目，避免污染其他列表 */
body.page-mybonus .mybonus-rules__formula {
    margin: 8px 0 14px !important;
    padding: 0 !important;
    list-style: none;
}
body.page-mybonus .mybonus-rules__formula > li {
    margin: 3px 0;
    padding: 7px 12px;
    border-radius: 9px;
    line-height: 1.65;
}
body.page-mybonus .mybonus-rules__formula > li::before {
    display: none;
}
body.page-mybonus .mybonus-rules__formula > li:nth-child(odd) {
    background: rgba(214, 148, 80, 0.06);
}

/* 公式定义块：把 MathJax 区段从空白页面上"框"起来 */
body.page-mybonus .mybonus-rules .text > h1 + p,
body.page-mybonus .mybonus-rules mjx-container {
    color: #4b3a28;
}
body.page-mybonus .mybonus-rules div[align="center"] {
    margin: 16px 0;
    padding: 14px 16px;
    border: 1px solid rgba(226, 214, 196, 0.78);
    border-radius: 14px;
    background: rgba(255, 251, 246, 0.72);
    color: #6b543c;
    line-height: 1.8;
    text-align: left !important;
}
body.page-mybonus .mybonus-rules table[width="400"] {
    width: 100% !important;
    margin: 6px 0 18px !important;
}
body.page-mybonus .mybonus-rules table[width="400"] td {
    padding: 0 !important;
}

/* --- 兑换卡片等高网格 --- */
body.page-mybonus .mybonus-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: stretch;
    width: 100%;
    margin: 0 0 4px;
}
@media (max-width: 1080px) {
    body.page-mybonus .mybonus-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 480px) {
    body.page-mybonus .mybonus-card-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
body.page-mybonus .mybonus-card-grid > .mybonus-exchange-card {
    display: flex;
    flex-direction: column;
    min-height: 0;
}
body.page-mybonus .mybonus-card-grid > .mybonus-exchange-card .mybonus-exchange-card__body {
    flex: 0 0 auto;
}
body.page-mybonus .mybonus-card-grid > .mybonus-exchange-card .mybonus-exchange-card__aside {
    margin-top: auto;
}

/* 分类标签：弱化为次要元信息 */
body.page-mybonus .mybonus-exchange-card__tag {
    margin-left: auto;
    background: rgba(120, 100, 80, 0.07) !important;
    color: #a7967f !important;
    font-weight: 700 !important;
}

/* 价格单位 */
body.page-mybonus .mybonus-exchange-card__unit {
    margin-left: 2px;
    color: #b7a187;
    font-size: 11px;
    font-weight: 700;
}

/* 赠送卡：未选"自定义"时隐藏禁用的输入框 */
body.page-mybonus #giftcustom:disabled {
    display: none;
}

/* 卡片正面的触发按钮（打开弹层）—— 与 input[type=submit] 兑换按钮保持同形同高 */
body.page-mybonus .mybonus-exchange-card__trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 64px;
    min-height: 26px;
    padding: 0 14px;
    border: 1px solid rgba(214, 148, 80, 0.55);
    border-radius: 999px;
    background: linear-gradient(180deg, #ffffff, #fff7ed);
    color: #a4631f;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.04em;
    line-height: 1.2;
    white-space: normal;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(154, 90, 28, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}
body.page-mybonus .mybonus-exchange-card__trigger.is-primary {
    border: 1px solid rgba(214, 148, 80, 0.55);
    background: #fffaf3;
    color: #bf6a1f;
    text-shadow: none;
    box-shadow: none;
}
body.page-mybonus .mybonus-exchange-card__trigger.is-primary:hover {
    border-color: #d67b28;
    background: #d67b28;
    color: #fff;
    box-shadow: 0 2px 6px rgba(199, 117, 38, 0.2);
    transform: translateY(-1px);
}
body.page-mybonus .mybonus-exchange-card__trigger.is-primary:active {
    background: #c46f22;
    border-color: #c46f22;
    box-shadow: none;
    transform: translateY(0);
}
body.page-mybonus .mybonus-exchange-card__trigger.is-disabled {
    min-width: 60px;
    min-height: 26px;
    padding: 0 12px;
    border-color: transparent;
    background: rgba(229, 219, 204, 0.55);
    color: #a89878;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
    box-shadow: none;
    cursor: not-allowed;
}

/* 同步压低 input[type=submit] 不可用提交按钮（与触发按钮共形） */
body.page-mybonus .mybonus-exchange-card.is-disabled input[type="submit"]:disabled,
body.page-mybonus .mybonus-exchange-card__action input[type="submit"]:disabled {
    width: auto;
    min-width: 60px;
    min-height: 26px;
    padding: 0 12px;
    border: 1px solid transparent;
    background: rgba(229, 219, 204, 0.55);
    color: #a89878;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.01em;
    box-shadow: none;
    text-shadow: none;
    cursor: not-allowed;
}

/* 查看说明入口：默认隐藏，hover/focus 卡片时浮现，避免常态视觉噪点 */
body.page-mybonus .mybonus-exchange-card__info {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    margin-left: 2px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #b99b78;
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
    opacity: 0;
    transform: translateY(-1px);
    pointer-events: none;
    transition: color 0.15s ease, opacity 0.18s ease, background 0.15s ease, transform 0.18s ease;
}
body.page-mybonus .mybonus-exchange-card:hover .mybonus-exchange-card__info,
body.page-mybonus .mybonus-exchange-card:focus-within .mybonus-exchange-card__info,
body.page-mybonus .mybonus-exchange-card__info:focus-visible {
    opacity: 0.85;
    transform: translateY(0);
    pointer-events: auto;
}
body.page-mybonus .mybonus-exchange-card__info i {
    font-size: 13px;
}
body.page-mybonus .mybonus-exchange-card__info:hover {
    background: rgba(214, 148, 80, 0.1);
    color: #8f541c;
    opacity: 1;
}

/* 不可用角标：常驻标识，扫视即可分辨可兑换状态 */
body.page-mybonus .mybonus-exchange-card__status {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0 8px;
    border: 1px solid rgba(160, 105, 70, 0.32);
    border-radius: 999px;
    background: rgba(204, 110, 70, 0.08);
    color: #b25e34;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.02em;
}

/* 禁用卡片中保留彩虹文字色彩，避免被 saturate 抹平视觉特征 */
body.page-mybonus .mybonus-exchange-card.is-disabled .Rainbow_Name {
    filter: saturate(2.4);
}

/* 没有价格的卡（彩虹ID 等暂未开放）只显示按钮，aside 居右排布 */
body.page-mybonus .mybonus-exchange-card__aside.is-empty {
    grid-template-columns: 1fr;
    justify-items: end;
}
body.page-mybonus .mybonus-exchange-card__aside.is-empty .mybonus-exchange-card__action {
    width: auto;
    min-width: 60px;
    max-width: 60%;
}
body.page-mybonus .mybonus-exchange-card__aside.is-empty .mybonus-exchange-card__action input[type="submit"],
body.page-mybonus .mybonus-exchange-card__aside.is-empty .mybonus-exchange-card__action .mybonus-exchange-card__trigger {
    width: auto;
}

/* 按钮下方常驻显示禁用原因，无需 hover */
body.page-mybonus .mybonus-exchange-card__reason {
    margin: 9px 0 0;
    color: #b09377;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.45;
    text-align: center;
}

/* 兑换弹层 */
body.page-mybonus .mybonus-bonus-dialog {
    width: min(440px, calc(100vw - 32px));
    max-height: min(82vh, 760px);
    margin: auto;
    padding: 0;
    border: 1px solid rgba(229, 201, 168, 0.7);
    border-radius: 18px;
    background: #fffdf9;
    color: #5f4e3e;
    overflow: auto;
    box-shadow: 0 30px 80px rgba(60, 40, 15, 0.28);
}
body.page-mybonus .mybonus-bonus-dialog::backdrop {
    background: rgba(38, 26, 14, 0.32);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
body.page-mybonus .mybonus-bonus-dialog__close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(120, 100, 80, 0.08);
    color: #8a7257;
    font-size: 19px;
    line-height: 1;
    cursor: pointer;
}
body.page-mybonus .mybonus-bonus-dialog__close:hover {
    background: rgba(120, 100, 80, 0.16);
}
body.page-mybonus .mybonus-bonus-dialog__head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px 52px 14px 22px;
    border-bottom: 1px solid rgba(229, 201, 168, 0.5);
}
body.page-mybonus .mybonus-bonus-dialog__head h3 {
    margin: 0;
    padding: 0;
    background: none;
    color: #43331f;
    font-size: 17px;
    font-weight: 850;
    line-height: 1.35;
}
body.page-mybonus .mybonus-bonus-dialog__tag {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(120, 100, 80, 0.07);
    color: #a7967f;
    font-size: 11px;
    font-weight: 700;
}
body.page-mybonus .mybonus-bonus-dialog__body {
    padding: 12px 22px 18px;
    font-size: 13px;
    line-height: 1.75;
}
body.page-mybonus .mybonus-bonus-dialog__body b {
    color: #9a571a;
}
body.page-mybonus .mybonus-bonus-dialog__form {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed rgba(229, 201, 168, 0.7);
}
body.page-mybonus .mybonus-bonus-dialog__form .mybonus-field-row,
body.page-mybonus .mybonus-bonus-dialog__form .mybonus-inline-form {
    margin-top: 0;
}
body.page-mybonus .mybonus-bonus-dialog input[type="text"],
body.page-mybonus .mybonus-bonus-dialog select {
    box-sizing: border-box;
    min-height: 32px;
    max-width: 100%;
    margin: 0;
    padding: 6px 10px;
    border: 1px solid rgba(229, 201, 168, 0.72);
    border-radius: 9px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
}

/* ------------------------------------------------------------
 * 新版下拉（ui-dropdown）在兑换表单/弹层里的适配
 *   - 兑换弹层（非说明型）改 overflow:visible，让下拉浮层不被弹层裁剪；
 *     说明型弹层（--info）仍保留 overflow:auto 以滚动长文案。
 *   - trigger 改成与文本输入框一致的"白底 + 暖描边"外观。
 * ------------------------------------------------------------ */
body.page-mybonus .mybonus-bonus-dialog:not(.mybonus-bonus-dialog--info) {
    overflow: visible;
}
body.page-mybonus .mybonus-dd .ui-dropdown-trigger {
    width: 100%;
    min-width: 72px;
    min-height: 32px;
    justify-content: space-between;
    padding: 6px 12px;
    border: 1px solid rgba(229, 201, 168, 0.72);
    border-radius: 9px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 600;
}
body.page-mybonus .mybonus-dd:hover .ui-dropdown-trigger,
body.page-mybonus .mybonus-dd:focus-within .ui-dropdown-trigger {
    background: #fff;
    border-color: rgba(191, 113, 36, 0.5);
    color: #6f3a00;
    transform: none;
}
/* gift_2：比例/数量两个下拉在 grid label 中占满一行 */
body.page-mybonus .mybonus-inline-form > label > .mybonus-dd {
    display: block;
    width: 100%;
}
/* gift_1：金额下拉与“自定义”输入框在 field-pair 中按比例分配 */
body.page-mybonus .mybonus-field-pair .mybonus-dd {
    flex: 1 1 120px;
}
/* random_draw：盲盒数量下拉保持行内紧凑 */
body.page-mybonus .mybonus-field-row .mybonus-dd {
    flex: 0 0 auto;
}
body.page-mybonus .mybonus-bonus-dialog__foot {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 22px;
    border-top: 1px solid rgba(229, 201, 168, 0.6);
    background: rgba(255, 251, 245, 0.97);
}
body.page-mybonus .mybonus-bonus-dialog__price {
    display: flex;
    flex-direction: column;
    gap: 2px;
    align-self: center;
}
body.page-mybonus .mybonus-bonus-dialog__price-label {
    color: #b7a187;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
}
body.page-mybonus .mybonus-bonus-dialog__price strong {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #8f541c;
    font-size: 18px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}
body.page-mybonus .mybonus-bonus-dialog__price strong i {
    color: #d59043;
    font-size: 13px;
}
body.page-mybonus .mybonus-bonus-dialog__price strong > span {
    display: inline-block;
}
body.page-mybonus .mybonus-bonus-dialog__action {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 10px;
}
body.page-mybonus .mybonus-bonus-dialog__cancel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 84px;
    min-height: 40px;
    padding: 0 20px;
    border: 1px solid rgba(213, 197, 178, 0.95);
    border-radius: 999px;
    background: #fff;
    color: #8b7660;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
body.page-mybonus .mybonus-bonus-dialog__cancel:hover {
    border-color: rgba(191, 113, 36, 0.45);
    background: rgba(255, 247, 235, 0.95);
    color: #8f541c;
}
body.page-mybonus .mybonus-bonus-dialog__cancel:active {
    transform: translateY(1px);
}
body.page-mybonus .mybonus-bonus-dialog__action input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 150px;
    min-height: 40px;
    padding: 0 24px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: #e3893a;
    color: #fff !important;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.04em;
    cursor: pointer;
    white-space: normal;
    text-shadow: none;
    box-shadow: 0 1px 2px rgba(199, 117, 38, 0.2);
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
body.page-mybonus .mybonus-bonus-dialog__action input[type="submit"]:hover {
    background: #d67b28;
    box-shadow: 0 3px 8px rgba(199, 117, 38, 0.25);
    transform: translateY(-1px);
}
body.page-mybonus .mybonus-bonus-dialog__action input[type="submit"]:active {
    background: #c46f22;
    box-shadow: 0 1px 2px rgba(150, 80, 20, 0.2);
    transform: translateY(0);
}
body.page-mybonus .mybonus-bonus-dialog__action input[type="submit"]:disabled {
    border-color: rgba(206, 192, 174, 0.7);
    background: rgba(243, 238, 230, 0.9);
    color: #ab9c88 !important;
    text-shadow: none;
    box-shadow: none;
    cursor: not-allowed;
    transform: none;
}

/* info 弹层底部按钮容器（"我知道了"），居右排列 */
body.page-mybonus .mybonus-bonus-dialog__foot--info {
    display: flex;
    justify-content: flex-end;
    padding: 12px 22px 16px;
    border-top: 1px solid rgba(229, 201, 168, 0.5);
    background: rgba(255, 251, 245, 0.85);
}
body.page-mybonus .mybonus-bonus-dialog__foot--info .mybonus-bonus-dialog__cancel {
    min-width: 96px;
}

/* 弹层正文中的"注意"提示 callout */
body.page-mybonus .mybonus-bonus-dialog__note {
    margin: 14px 0 0;
    padding: 10px 12px 10px 14px;
    border-left: 3px solid #d59043;
    border-radius: 0 8px 8px 0;
    background: rgba(214, 148, 80, 0.07);
    color: #6f5438;
    font-size: 12px;
    line-height: 1.65;
}
body.page-mybonus .mybonus-bonus-dialog__note b {
    color: #9a571a;
}

/* 做种汇总卡：键值对网格 */
body.page-mybonus .mybonus-rules__summary {
    margin: 16px 0;
    padding: 16px 18px;
    border: 1px solid rgba(226, 214, 196, 0.78);
    border-radius: 14px;
    background: rgba(255, 251, 246, 0.85);
    color: #6b543c;
}
body.page-mybonus .mybonus-rules__summary-headline {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 12px;
    padding-bottom: 12px;
    border-bottom: 1px dashed rgba(229, 201, 168, 0.7);
}
body.page-mybonus .mybonus-rules__summary-label {
    color: #8b7660;
    font-size: 13px;
    font-weight: 700;
}
body.page-mybonus .mybonus-rules__summary-value {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    color: #a05f1d;
    font-size: 22px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
body.page-mybonus .mybonus-rules__summary-value i {
    color: #d59043;
    font-size: 16px;
}
body.page-mybonus .mybonus-rules__summary-value > span {
    color: #b7a187;
    font-size: 12px;
    font-weight: 700;
}
body.page-mybonus .mybonus-rules__summary-hint {
    flex: 1 1 100%;
    color: #8b7660;
    font-size: 12px;
    line-height: 1.6;
}
body.page-mybonus .mybonus-rules__summary-hint b {
    color: #a05f1d;
    font-variant-numeric: tabular-nums;
}
body.page-mybonus .mybonus-rules__summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 6px 16px;
    margin: 12px 0 0;
    padding: 0;
}
body.page-mybonus .mybonus-rules__summary-grid > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    padding: 5px 0;
    border-bottom: 1px solid rgba(229, 201, 168, 0.32);
}
body.page-mybonus .mybonus-rules__summary-grid dt {
    margin: 0;
    color: #8b7660;
    font-size: 12px;
    font-weight: 700;
}
body.page-mybonus .mybonus-rules__summary-grid dd {
    margin: 0;
    color: #5a4630;
    font-size: 13px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    text-align: right;
}

/* 做种进度条：标签 + 进度 */
body.page-mybonus .mybonus-rules__progress {
    margin: 14px 0 0;
}
body.page-mybonus .mybonus-rules__progress-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 6px;
}
body.page-mybonus .mybonus-rules__progress-head span {
    color: #8b7660;
    font-size: 12px;
    font-weight: 700;
}
body.page-mybonus .mybonus-rules__progress-head strong {
    color: #a05f1d;
    font-size: 14px;
    font-weight: 900;
    font-variant-numeric: tabular-nums;
}
body.page-mybonus .mybonus-rules__progress-track {
    width: 100%;
    height: 12px;
    border-radius: 999px;
    background: rgba(214, 148, 80, 0.14);
    overflow: hidden;
}
body.page-mybonus .mybonus-rules__progress-fill {
    height: 100%;
    border-radius: 999px;
    transition: width 0.3s ease;
}
body.page-mybonus .mybonus-rules__progress-fill.loadbarred {
    background: linear-gradient(90deg, #e3724e, #f0a07a);
}
body.page-mybonus .mybonus-rules__progress-fill.loadbaryellow {
    background: linear-gradient(90deg, #e0a83a, #f3cd72);
}
body.page-mybonus .mybonus-rules__progress-fill.loadbargreen {
    background: linear-gradient(90deg, #5aa86a, #8fce86);
}

/* --- 规则区现代化 --- */
body.page-mybonus .mybonus-rules__head {
    display: flex !important;
    align-items: center;
    gap: 10px;
    padding: 15px 20px !important;
    text-align: left !important;
    border-bottom: 1px solid rgba(229, 201, 168, 0.5) !important;
}
body.page-mybonus .mybonus-rules__head-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: rgba(214, 148, 80, 0.12);
    color: #a55f1c;
    font-size: 14px;
}
body.page-mybonus .mybonus-rules__head-text {
    color: #4b3a28;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: 0.02em;
}
body.page-mybonus .mybonus-rules .loadbarbg {
    display: block;
    width: 100%;
    height: 12px !important;
    margin: 6px 0 2px;
    padding: 0 !important;
    border-radius: 999px;
    background: rgba(214, 148, 80, 0.14) !important;
    overflow: hidden;
}
body.page-mybonus .mybonus-rules .loadbarred,
body.page-mybonus .mybonus-rules .loadbaryellow,
body.page-mybonus .mybonus-rules .loadbargreen {
    display: block;
    height: 12px !important;
    border-radius: 999px;
}
body.page-mybonus .mybonus-rules .loadbarred {
    background: linear-gradient(90deg, #e3724e, #f0a07a) !important;
}
body.page-mybonus .mybonus-rules .loadbaryellow {
    background: linear-gradient(90deg, #e0a83a, #f3cd72) !important;
}
body.page-mybonus .mybonus-rules .loadbargreen {
    background: linear-gradient(90deg, #5aa86a, #8fce86) !important;
}

@media (max-width: 900px) {
    body.page-mybonus .mybonus-exchange-card {
        grid-template-columns: minmax(0, 1fr);
    }
    body.page-mybonus .mybonus-exchange-card__aside {
        grid-column: 2;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto;
        align-items: center;
        padding: 12px 0 0;
        border-left: 0;
        border-top: 1px solid rgba(232, 222, 207, 0.78);
    }
    body.page-mybonus .mybonus-exchange-card__points {
        align-items: flex-start;
        text-align: left;
    }
    body.page-mybonus .mybonus-option-row {
        grid-template-columns: 46px minmax(0, 1fr);
    }
    body.page-mybonus .mybonus-option-row > td:nth-child(3),
    body.page-mybonus .mybonus-option-row > td:nth-child(4) {
        border-top: 1px solid rgba(232, 222, 207, 0.72) !important;
    }
    body.page-mybonus .mybonus-option-row > td:nth-child(3) {
        border-left: 0 !important;
    }
}

@media (max-width: 640px) {
    body.page-mybonus .mybonus-hero {
        align-items: flex-start;
        padding: 15px;
    }
    body.page-mybonus .mybonus-exchange-card {
        grid-template-columns: 1fr;
        gap: 10px;
        padding: 14px;
    }
    body.page-mybonus .mybonus-exchange-card__aside {
        grid-column: auto;
        grid-template-columns: 1fr;
    }
    body.page-mybonus .mybonus-exchange-card__action input[type="submit"] {
        width: auto;
        min-width: 100px;
    }
    body.page-mybonus .mybonus-inline-form {
        grid-template-columns: 1fr;
    }
    body.page-mybonus .mybonus-inline-form__wide {
        grid-column: auto;
    }
    body.page-mybonus .mybonus-option-row {
        grid-template-columns: 1fr;
    }
    body.page-mybonus .mybonus-option-row > td:first-child {
        justify-content: flex-start;
        padding-bottom: 0;
        background: transparent !important;
    }
    body.page-mybonus .mybonus-option-row > td:nth-child(3),
    body.page-mybonus .mybonus-option-row > td:nth-child(4) {
        justify-content: flex-start;
        border-left: 0 !important;
    }
    body.page-mybonus .mybonus-exchange-table input[type="submit"] {
        width: auto;
        min-width: 130px;
    }
}

/* ==========================================================================
 * 发布页（upload.php）新版样式
 *
 * 保留旧表单提交结构，只在 page-upload 下把长表格整理为卡片化分区表单。
 * ========================================================================== */
body.page-upload .upload-page {
    box-sizing: border-box;
    width: min(100%, 1120px);
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-upload .upload-titlebar {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 14px;
    padding: 0 2px;
}
body.page-upload .upload-titlebar__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: rgba(244, 191, 138, 0.28);
    color: #c78340;
    font-size: 15px;
}
body.page-upload .upload-titlebar__text h1 {
    margin: 0;
    padding: 0;
    background: none;
    color: #4b3a28;
    font-size: 17px;
    font-weight: 800;
    letter-spacing: 0.03em;
}
body.page-upload .upload-titlebar__text p {
    margin: 3px 0 0;
    color: #9a8872;
    font-size: 12px;
    line-height: 1.5;
}
body.page-upload .upload-form {
    margin: 0;
}
body.page-upload .upload-alert {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    box-sizing: border-box;
    margin: 0 0 8px;
    padding: 10px 12px;
    border: 1px solid rgba(226, 214, 196, 0.72);
    border-radius: 12px;
    background: rgba(255, 252, 247, 0.72);
    color: #776653;
    font-size: 12.5px;
    line-height: 1.55;
}
body.page-upload .upload-alert i {
    margin-top: 2px;
    color: #c78340;
}
body.page-upload .upload-alert--warning {
    border-color: rgba(222, 154, 91, 0.42);
    background: rgba(255, 246, 232, 0.9);
    color: #8a5518;
}
body.page-upload .upload-alert--info,
body.page-upload .upload-alert--tip {
    background: rgba(255, 255, 255, 0.72);
}
body.page-upload .upload-form-table {
    box-sizing: border-box;
    width: 100%;
    margin: 14px 0 0;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 18px;
    border-collapse: separate;
    border-spacing: 0;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(255, 250, 243, 0.86));
    box-shadow: 0 10px 26px rgba(49, 66, 96, 0.05),
                0 2px 6px rgba(49, 66, 96, 0.03);
    overflow: hidden;
}
body.page-upload .upload-form-table td {
    box-sizing: border-box;
    border: 0;
    border-bottom: 1px solid rgba(232, 222, 207, 0.72);
    vertical-align: top;
}
body.page-upload .upload-form-table tr:last-child td {
    border-bottom: 0;
}
body.page-upload .upload-section-row td {
    padding: 0;
    background: rgba(255, 252, 247, 0.76);
}
body.page-upload .upload-section-head {
    padding: 16px 18px 10px;
}
body.page-upload .upload-section-head h2 {
    margin: 0;
    padding: 0;
    background: none;
    color: #3f3022;
    font-size: 15px;
    font-weight: 800;
}
body.page-upload .upload-section-head p {
    margin: 4px 0 0;
    color: #9a8872;
    font-size: 12px;
    line-height: 1.5;
}
body.page-upload .upload-form-table td.rowhead {
    width: 170px;
    padding: 14px 16px 14px 18px;
    border-right: 1px solid rgba(232, 222, 207, 0.62);
    background: linear-gradient(135deg, rgba(255, 250, 243, 0.78), rgba(255, 247, 237, 0.42));
    color: #7a6a58;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    text-align: right;
}
body.page-upload .upload-form-table td.rowfollow,
body.page-upload .upload-form-table tr > td:not(.rowhead):not(.colhead):not(.toolbox) {
    padding: 13px 18px;
    background: rgba(255, 255, 255, 0.72);
    color: #5f4e3e;
    font-size: 13px;
    line-height: 1.65;
}
body.page-upload .upload-form-table input[type="text"],
body.page-upload .upload-form-table select,
body.page-upload .upload-form-table textarea {
    box-sizing: border-box;
    max-width: 100%;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-family: inherit;
    font-size: 13px;
    transition: border-color 0.16s ease, background-color 0.16s ease, box-shadow 0.16s ease;
}
body.page-upload .upload-form-table input[type="text"] {
    min-height: 34px;
    padding: 6px 10px;
}
body.page-upload .upload-form-table select {
    -webkit-appearance: none;
    appearance: none;
    min-height: 32px;
    padding: 5px 28px 5px 10px;
    margin: 2px 8px 2px 0;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23b8966a' d='M6 8L1.5 3.5h9z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    cursor: pointer;
}
body.page-upload .upload-form-table textarea {
    padding: 9px 11px;
    line-height: 1.6;
}
body.page-upload .upload-form-table input[type="text"]:focus,
body.page-upload .upload-form-table select:focus,
body.page-upload .upload-form-table textarea:focus {
    outline: none;
    border-color: rgba(214, 150, 86, 0.75);
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.2);
}
body.page-upload .upload-form-table input[type="file"] {
    box-sizing: border-box;
    max-width: 100%;
    padding: 5px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.86);
    color: #6f5d49;
    font-size: 13px;
}
body.page-upload .upload-form-table input[type="file"]::file-selector-button {
    margin-right: 10px;
    padding: 5px 10px;
    border: 0;
    border-radius: 8px;
    background: rgba(245, 233, 214, 0.9);
    color: #7a572d;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}
body.page-upload .upload-form-table input[type="file"]::file-selector-button:hover {
    background: rgba(240, 226, 204, 0.98);
}
body.page-upload .upload-file-note {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 8px;
    color: #9a8872;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.55;
}
body.page-upload .upload-file-note i {
    color: #b89a77;
    font-size: 12px;
}
body.page-upload .upload-file-note b {
    display: inline-block;
    margin-left: 4px;
    padding: 2px 7px;
    border-radius: 7px;
    background: rgba(255, 249, 240, 0.9);
    color: #8a5518;
    font-family: Consolas, Monaco, monospace;
    font-size: 12px;
    font-weight: 700;
}
body.page-upload .upload-tracker-copy {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 0 0 0 4px;
    padding: 2px 7px;
    border: 1px solid rgba(224, 177, 113, 0.42);
    border-radius: 7px;
    background: rgba(255, 249, 240, 0.9);
    color: #8a5518;
    font: 700 12px Consolas, Monaco, monospace;
    line-height: 1.45;
    cursor: pointer;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
body.page-upload .upload-tracker-copy:hover,
body.page-upload .upload-tracker-copy:focus {
    border-color: rgba(202, 145, 83, 0.68);
    background: #fff5e6;
    color: #6e4111;
    outline: none;
}
body.page-upload .upload-tracker-copy.is-success {
    border-color: rgba(63, 142, 87, 0.45);
    background: rgba(241, 248, 243, 0.95);
    color: #2e7d44;
}
body.page-upload .upload-tracker-copy.is-failure {
    border-color: rgba(164, 66, 59, 0.45);
    background: rgba(250, 242, 241, 0.95);
    color: #a4423b;
}
body.page-upload .upload-tracker-copy__status {
    display: inline-flex;
    align-items: center;
    font-size: 12.5px;
    line-height: 1;
    opacity: 0.78;
}
body.page-upload .upload-tracker-copy:hover .upload-tracker-copy__status,
body.page-upload .upload-tracker-copy:focus .upload-tracker-copy__status {
    opacity: 1;
}
body.page-upload .upload-file-note--warning {
    color: #9a4e1f;
}
body.page-upload .upload-form-table font.medium,
body.page-upload .upload-form-table .medium {
    display: inline-block;
    margin-top: 5px;
    color: #9a8872;
    font-size: 12px;
    line-height: 1.55;
}
body.page-upload .upload-form-table font[color="red"] {
    color: #d57a42 !important;
    font-weight: 800;
}
body.page-upload .upload-form-table label {
    cursor: pointer;
}
/* 自定义多选框：去掉原生黑色对勾，改为焦糖底 + 白色对勾 */
body.page-upload .upload-form-table input[type="checkbox"] {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin-right: 5px;
    vertical-align: -3px;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid #d8c4a8;
    border-radius: 4px;
    background: #fff;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 11px 11px;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-upload .upload-form-table input[type="checkbox"]:hover {
    border-color: #d59043;
}
body.page-upload .upload-form-table input[type="checkbox"]:checked {
    border-color: #d59043;
    background-color: #d59043;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-6.5'/%3E%3C/svg%3E");
}
body.page-upload .upload-form-table input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.25);
}
body.page-upload .upload-form-table td.rowfollow > input[type="checkbox"],
body.page-upload .upload-form-table td.rowfollow > label input[type="checkbox"] {
    transform: translateY(1px);
}
body.page-upload .upload-form-table td.rowfollow > input[type="checkbox"] + *,
body.page-upload .upload-form-table td.rowfollow > label {
    color: #6f5d49;
    font-size: 13px;
}
body.page-upload .upload-form-table td.rowfollow b {
    display: inline-block;
    margin: 2px 6px 2px 0;
    color: #6f5d49;
    font-size: 12.5px;
}
body.page-upload .upload-select-line,
body.page-upload .upload-quality-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 12px;
}
body.page-upload .upload-dd-field {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 2px 24px 2px 0;
}
body.page-upload .upload-dd {
    vertical-align: middle;
}
body.page-upload .upload-dd .ui-dropdown-trigger {
    box-sizing: border-box;
    height: 32px;
    min-width: 118px;
    padding: 0 30px 0 12px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 500;
    box-shadow: none;
}
body.page-upload .upload-dd--type .ui-dropdown-trigger {
    min-width: 150px;
}
body.page-upload .upload-dd:hover .ui-dropdown-trigger,
body.page-upload .upload-dd:focus-within .ui-dropdown-trigger,
body.page-upload .upload-dd .ui-dropdown-trigger:hover,
body.page-upload .upload-dd .ui-dropdown-trigger:focus {
    transform: none;
    border-color: rgba(214, 150, 86, 0.75);
    background: #fffaf2;
    color: #6f3a00;
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.18);
}
body.page-upload .upload-dd .ui-dropdown-list {
    min-width: 100%;
    max-height: 260px;
    overflow: auto;
}
body.page-upload .upload-dd .ui-dropdown-list a {
    font-size: 12.5px;
    white-space: nowrap;
}
body.page-upload .upload-dd.is-disabled {
    opacity: 0.5;
    pointer-events: none;
}
body.page-upload .upload-dd.is-disabled .ui-dropdown-trigger {
    cursor: not-allowed;
    background: #f4efe6;
}

/* ============================================================
 * [App alert modal] 通用「在当前页弹框」报错组件（暖色玻璃风格）
 *   站点级、不限页面：任意页面给 <form data-ajax-modal> 即可复用
 *   （DOM 由 common.js 懒创建注入 body）。
 * ============================================================ */
.app-modal {
    position: fixed;
    inset: 0;
    z-index: 10010;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.app-modal.is-open {
    display: flex;
}
.app-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(38, 26, 14, 0.32);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
.app-modal__dialog {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: min(420px, calc(100vw - 48px));
    padding: 26px 26px 22px;
    border: 1px solid rgba(226, 210, 184, 0.9);
    border-radius: 18px;
    background: linear-gradient(180deg, #fffdf9 0%, #fff8ee 100%);
    box-shadow: 0 24px 60px rgba(40, 28, 14, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.8);
    text-align: center;
    animation: app-modal-pop 0.18s ease-out;
}
@keyframes app-modal-pop {
    from { opacity: 0; transform: translateY(8px) scale(0.97); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}
.app-modal__close {
    appearance: none;
    -webkit-appearance: none;
    position: absolute;
    top: 12px;
    right: 12px;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #a98f6a;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}
.app-modal__close:hover,
.app-modal__close:focus {
    background: rgba(238, 220, 188, 0.72);
    color: #744b1c;
    outline: none;
}
.app-modal__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    margin: 2px auto 14px;
    border-radius: 999px;
    background: rgba(244, 191, 138, 0.22);
    color: #d2802f;
    font-size: 26px;
}
/* 成功语态：绿色对勾 */
.app-modal__icon--success {
    background: rgba(90, 168, 106, 0.18);
    color: #4f9d5f;
}
/* 信息语态：蓝色 */
.app-modal__icon--info {
    background: rgba(96, 150, 214, 0.18);
    color: #3f7bc4;
}
/* 告警语态（用于确认框）：琥珀色三角 */
.app-modal__icon--warning {
    background: rgba(230, 150, 60, 0.18);
    color: #d2802f;
}
.app-modal__title {
    margin: 0 0 8px;
    padding: 0;
    border: 0;
    background: none;
    color: #5a4128;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.4;
    text-align: center;
    text-shadow: none;
}
.app-modal__text {
    margin: 0 0 20px;
    color: #7a6650;
    font-size: 13.5px;
    line-height: 1.65;
    word-break: break-word;
}
.app-modal__actions {
    display: flex;
    justify-content: center;
    gap: 12px;
}
/* 取消按钮（仅确认框显示）：描边浅色按钮 */
.app-modal__cancel {
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
    min-width: 100px;
    height: 36px;
    padding: 0 22px;
    border: 1px solid rgba(214, 184, 142, 0.85);
    border-radius: 999px;
    background: #fff;
    color: #8a6a3e;
    font-size: 13.5px;
    font-weight: 700;
    line-height: 34px;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}
.app-modal__cancel:hover,
.app-modal__cancel:focus {
    background: rgba(255, 244, 228, 0.9);
    border-color: rgba(199, 131, 64, 0.7);
    outline: none;
}
.app-modal__ok {
    appearance: none;
    -webkit-appearance: none;
    box-sizing: border-box;
    min-width: 132px;
    height: 36px;
    padding: 0 22px;
    border: 0;
    border-radius: 999px;
    background: #f0a04a;
    color: #fff;
    font-size: 13.5px;
    font-weight: 700;
    line-height: 36px;
    letter-spacing: 0.5px;
    cursor: pointer;
    box-shadow: none;
    transition: background 0.15s ease;
}
.app-modal__ok:hover,
.app-modal__ok:focus {
    background: #e89238;
    color: #fff;
    box-shadow: none;
    outline: none;
}
.app-modal__ok:active {
    background: #db8528;
    box-shadow: none;
}
/* 危险确认（如删除）：主按钮转红 */
.app-modal__ok--danger {
    background: #d9534f;
}
.app-modal__ok--danger:hover,
.app-modal__ok--danger:focus {
    background: #c9403c;
}
.app-modal__ok--danger:active {
    background: #b5302c;
}
body.page-upload .upload-editor {
    box-sizing: border-box;
    width: 100%;
}
body.page-upload .upload-editor > table {
    width: 100% !important;
    border-collapse: separate;
    border-spacing: 0;
}
body.page-upload .upload-editor table,
body.page-upload .upload-editor tr,
body.page-upload .upload-editor td {
    border: 0;
    background: transparent;
}
body.page-upload .upload-editor > table > tbody > tr:first-child > td {
    padding: 0 0 10px !important;
}
body.page-upload .upload-editor > table > tbody > tr:first-child table tr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    padding: 6px 10px;
    border: 1px solid rgba(222, 218, 210, 0.82);
    border-radius: 13px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.92), rgba(250, 248, 244, 0.9));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
}
body.page-upload .upload-editor > table > tbody > tr:first-child table,
body.page-upload .upload-editor > table > tbody > tr:first-child table tbody {
    display: block;
    width: 100%;
}
body.page-upload .upload-editor > table > tbody > tr:first-child td.embedded {
    position: relative;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    min-width: 28px;
    height: 28px;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 7px;
    background: transparent;
    color: #655647;
    overflow: visible;
    transition: background 0.16s ease, color 0.16s ease;
}
body.page-upload .upload-editor > table > tbody > tr:first-child td.embedded:hover {
    background: transparent;
}
body.page-upload .upload-editor input[type="button"] {
    box-sizing: border-box;
    height: 100%;
    min-height: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    color: inherit !important;
    font-size: 12px !important;
    font-weight: 700;
    line-height: 1 !important;
    text-align: center;
    box-shadow: none !important;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
}
body.page-upload .upload-editor input[type="button"]:hover {
    background: transparent !important;
    color: inherit !important;
    transform: none;
}
body.page-upload .upload-editor td.embedded:has(> input[name="b"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="i"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="u"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="s"]) > input {
    font-size: 16px !important;
}
body.page-upload .upload-editor td.embedded:has(> input[name="b"]),
body.page-upload .upload-editor td.embedded:has(> input[name="i"]),
body.page-upload .upload-editor td.embedded:has(> input[name="u"]),
body.page-upload .upload-editor td.embedded:has(> input[name="s"]) {
    width: 28px;
    min-width: 28px;
    height: 26px;
    padding: 0 !important;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: #2d2419;
}
body.page-upload .upload-editor td.embedded:has(> input[name="b"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="i"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="u"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="s"]):hover {
    border: 1px solid rgba(202, 145, 83, 0.48) !important;
    background: rgba(255, 239, 219, 0.9);
    color: #8a5518;
}
body.page-upload .upload-editor td.embedded:has(> input[name="i"]) > input {
    font-style: italic !important;
}
body.page-upload .upload-editor td.embedded:has(> input[name="u"]) > input {
    text-decoration: underline !important;
    text-decoration-thickness: 1.5px !important;
}
body.page-upload .upload-editor td.embedded:has(> input[name="s"]) > input {
    text-decoration: line-through !important;
    text-decoration-thickness: 1.5px !important;
}
body.page-upload .upload-editor td.embedded:has(> input[name="center"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="url"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="IMG"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="list"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="quote"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="code"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="hide"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="Mediainfo"]) > input,
body.page-upload .upload-editor td.embedded:has(> input[name="tagcount"]) > input {
    color: transparent !important;
    font-size: 0 !important;
    text-indent: 0 !important;
    overflow: hidden !important;
}
body.page-upload .upload-editor td.embedded:has(> input[name="center"]),
body.page-upload .upload-editor td.embedded:has(> input[name="url"]),
body.page-upload .upload-editor td.embedded:has(> input[name="IMG"]),
body.page-upload .upload-editor td.embedded:has(> input[name="list"]),
body.page-upload .upload-editor td.embedded:has(> input[name="quote"]),
body.page-upload .upload-editor td.embedded:has(> input[name="code"]),
body.page-upload .upload-editor td.embedded:has(> input[name="hide"]),
body.page-upload .upload-editor td.embedded:has(> input[name="Mediainfo"]),
body.page-upload .upload-editor td.embedded:has(> input[name="tagcount"]) {
    width: auto;
    min-width: 36px;
    height: 24px;
    padding: 0 9px !important;
    border: 1px solid rgba(220, 224, 228, 0.78) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    color: #675747 !important;
    white-space: nowrap;
}
body.page-upload .upload-editor td.embedded:has(> input[name="center"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="url"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="IMG"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="list"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="quote"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="code"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="hide"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="Mediainfo"]):hover,
body.page-upload .upload-editor td.embedded:has(> input[name="tagcount"]):hover {
    border-color: rgba(204, 162, 104, 0.74) !important;
    background: rgba(255, 248, 238, 0.96) !important;
    color: #8a5518 !important;
}
body.page-upload .upload-editor td.embedded:has(> input[name="center"])::before,
body.page-upload .upload-editor td.embedded:has(> input[name="url"])::before,
body.page-upload .upload-editor td.embedded:has(> input[name="IMG"])::before,
body.page-upload .upload-editor td.embedded:has(> input[name="list"])::before,
body.page-upload .upload-editor td.embedded:has(> input[name="quote"])::before,
body.page-upload .upload-editor td.embedded:has(> input[name="code"])::before,
body.page-upload .upload-editor td.embedded:has(> input[name="hide"])::before,
body.page-upload .upload-editor td.embedded:has(> input[name="Mediainfo"])::before,
body.page-upload .upload-editor td.embedded:has(> input[name="tagcount"])::before {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
    font-weight: 700;
    font-style: normal;
    font-size: 11.5px;
    line-height: 24px;
    color: inherit;
    pointer-events: none;
}
body.page-upload .upload-editor td.embedded:has(> input[name="center"])::before    { content: "居中"; }
body.page-upload .upload-editor td.embedded:has(> input[name="url"])::before       { content: "链接"; }
body.page-upload .upload-editor td.embedded:has(> input[name="IMG"])::before       { content: "图片"; }
body.page-upload .upload-editor td.embedded:has(> input[name="list"])::before      { content: "列表"; }
body.page-upload .upload-editor td.embedded:has(> input[name="quote"])::before     { content: "引用"; }
body.page-upload .upload-editor td.embedded:has(> input[name="code"])::before      { content: "代码"; }
body.page-upload .upload-editor td.embedded:has(> input[name="hide"])::before      { content: "隐藏"; }
body.page-upload .upload-editor td.embedded:has(> input[name="Mediainfo"])::before { content: "MI"; }
body.page-upload .upload-editor td.embedded:has(> input[name="tagcount"])::before  { content: "关闭"; }
body.page-upload .upload-editor td.embedded:has(> input[type="button"])::after {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    transform: translateX(-50%) translateY(2px);
    padding: 5px 9px;
    border-radius: 6px;
    background: rgba(35, 28, 20, 0.92);
    color: #fff;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.16s ease, transform 0.16s ease;
    z-index: 40;
}
body.page-upload .upload-editor td.embedded:has(> input[type="button"]):hover::after,
body.page-upload .upload-editor td.embedded:has(> input[type="button"]):focus-within::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
body.page-upload .upload-editor td.embedded:has(> input[name="b"])::after         { content: "粗体"; }
body.page-upload .upload-editor td.embedded:has(> input[name="i"])::after         { content: "斜体"; }
body.page-upload .upload-editor td.embedded:has(> input[name="u"])::after         { content: "下划线"; }
body.page-upload .upload-editor td.embedded:has(> input[name="s"])::after         { content: "删除线"; }
body.page-upload .upload-editor td.embedded:has(> input[name="center"])::after    { content: "居中"; }
body.page-upload .upload-editor td.embedded:has(> input[name="url"])::after       { content: "链接"; }
body.page-upload .upload-editor td.embedded:has(> input[name="IMG"])::after       { content: "图片"; }
body.page-upload .upload-editor td.embedded:has(> input[name="list"])::after      { content: "列表"; }
body.page-upload .upload-editor td.embedded:has(> input[name="quote"])::after     { content: "引用"; }
body.page-upload .upload-editor td.embedded:has(> input[name="code"])::after      { content: "代码"; }
body.page-upload .upload-editor td.embedded:has(> input[name="hide"])::after      { content: "隐藏内容"; }
body.page-upload .upload-editor td.embedded:has(> input[name="Mediainfo"])::after { content: "Mediainfo"; }
body.page-upload .upload-editor td.embedded:has(> input[name="tagcount"])::after  { content: "关闭所有标签"; }
body.page-upload .upload-editor textarea.bbcode {
    width: min(100%, 720px) !important;
    min-height: 260px;
    resize: vertical;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: inset 0 1px 2px rgba(80, 55, 30, 0.03);
}
body.page-upload .upload-editor textarea.bbcode + * {
    margin-top: 0;
}
body.page-upload .upload-editor > table > tbody > tr:nth-child(2) {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 170px;
    gap: 14px;
    align-items: start;
}
body.page-upload .upload-editor > table > tbody > tr:nth-child(2) > td {
    display: block;
    width: auto !important;
    padding: 0 !important;
}
body.page-upload .upload-editor > table > tbody > tr:nth-child(2) > td:last-child {
    box-sizing: border-box;
    max-height: 315px;
    padding: 10px !important;
    border: 1px solid rgba(226, 214, 196, 0.72);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(255, 252, 247, 0.86), rgba(255, 248, 238, 0.58));
    overflow: auto;
}
body.page-upload .upload-editor > table > tbody > tr:nth-child(2) > td:last-child table {
    width: 100%;
}
body.page-upload .upload-editor > table > tbody > tr:nth-child(2) > td:last-child table tr {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5px;
}
body.page-upload .upload-editor > table > tbody > tr:nth-child(2) > td:last-child td.embedded {
    padding: 0 !important;
    text-align: center;
}
body.page-upload .upload-editor > table > tbody > tr:nth-child(2) > td:last-child img {
    max-width: 20px;
    transition: transform 0.12s ease;
}
body.page-upload .upload-editor > table > tbody > tr:nth-child(2) > td:last-child a:hover img {
    transform: translateY(-1px) scale(1.08);
}
/* 对齐论坛帖子页快速回复的 textbbcode 编辑器结构 */
body.page-upload .upload-compose-card {
    box-sizing: border-box;
    width: 100%;
    padding: 0;
    border: 1px solid rgba(222, 218, 210, 0.82);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96), rgba(255, 254, 253, 0.96));
    box-shadow: 0 8px 18px rgba(49, 66, 96, 0.028);
    overflow: hidden;
}
body.page-upload .upload-compose-card #editorouter > table,
body.page-upload .upload-compose-card #editorouter > table > tbody {
    display: block;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.page-upload .upload-compose-card #editorouter > table > tbody > tr,
body.page-upload .upload-compose-card #editorouter > table > tr {
    display: block;
    width: 100% !important;
    margin: 0 !important;
}
body.page-upload .upload-compose-card #editorouter > table > tbody > tr > td,
body.page-upload .upload-compose-card #editorouter > table > tr > td {
    display: block;
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-align: left !important;
}
body.page-upload .upload-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table,
body.page-upload .upload-compose-card #editorouter > table > tr:not(:has(> td > textarea.bbcode)) > td > table,
body.page-upload .upload-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tbody {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-spacing: 0 !important;
}
body.page-upload .upload-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tbody > tr,
body.page-upload .upload-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tr {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 4px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    padding: 6px 10px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(222, 218, 210, 0.72) !important;
    border-radius: 0 !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(250, 248, 244, 0.76)) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86) !important;
    overflow: visible !important;
}
body.page-upload .upload-compose-card #editorouter:focus-within > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tbody > tr,
body.page-upload .upload-compose-card #editorouter:focus-within > table > tr:not(:has(> td > textarea.bbcode)) > td > table > tr {
    border-color: rgba(202, 145, 83, 0.52) !important;
    background: rgba(255, 249, 240, 0.72) !important;
}
body.page-upload .upload-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) td.embedded,
body.page-upload .upload-compose-card #editorouter > table > tr:not(:has(> td > textarea.bbcode)) td.embedded {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[type="button"]) {
    position: relative !important;
    box-sizing: border-box !important;
    width: 28px !important;
    min-width: 28px !important;
    height: 26px !important;
    border-radius: 7px !important;
    color: #2d2419 !important;
    transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[type="button"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded.is-active {
    border: 1px solid rgba(202, 145, 83, 0.48) !important;
    background: rgba(255, 239, 219, 0.9) !important;
    color: #8a5518 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"]) {
    width: auto !important;
    min-width: 36px !important;
    height: 24px !important;
    padding: 0 9px !important;
    border: 1px solid rgba(220, 224, 228, 0.78) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    color: #675747 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[type="button"]) > input[type="button"] {
    box-sizing: border-box !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    color: inherit !important;
    font-size: 12px !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    outline: none !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="b"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="i"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="u"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="s"]) > input {
    font-size: 16px !important;
    font-weight: 700 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="i"]) > input { font-style: italic !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="u"]) > input { text-decoration: underline !important; text-decoration-thickness: 1.5px !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="s"]) > input { text-decoration: line-through !important; text-decoration-thickness: 1.5px !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"]) > input {
    color: transparent !important;
    font-size: 0 !important;
    overflow: hidden !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"])::before {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 24px;
    pointer-events: none;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"])::before    { content: "居中"; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"])::before       { content: "链接"; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"])::before       { content: "图片"; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"])::before      { content: "列表"; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"])::before     { content: "引用"; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"])::before      { content: "代码"; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"])::before      { content: "隐藏"; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"])::before { content: "MI"; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"])::before  { content: "关闭"; }
body.page-upload .upload-compose-card #editorouter > table > tbody > tr:has(> td > textarea.bbcode),
body.page-upload .upload-compose-card #editorouter > table > tr:has(> td > textarea.bbcode) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
}
body.page-upload .upload-compose-card #editorouter textarea.bbcode {
    box-sizing: border-box !important;
    width: 100% !important;
    min-height: 260px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.page-upload .upload-compose-card #editorouter
    > table > tbody > tr:has(> td > textarea.bbcode) > td:has(> textarea.bbcode),
body.page-upload .upload-compose-card #editorouter
    > table > tr:has(> td > textarea.bbcode) > td:has(> textarea.bbcode) {
    order: 2 !important;
}
body.page-upload .upload-compose-card #editorouter:not(.is-emoji-open)
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child,
body.page-upload .upload-compose-card #editorouter:not(.is-emoji-open)
    > table > tr:has(> td > textarea.bbcode) > td:last-child {
    display: none !important;
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child {
    display: block !important;
    box-sizing: border-box !important;
    order: 1 !important;
    width: auto !important;
    margin: 4px 10px 0 !important;
    padding: 8px 10px !important;
    border: 1px dashed rgba(218, 150, 70, 0.45) !important;
    border-radius: 10px !important;
    background: rgba(255, 250, 244, 0.78) !important;
    box-shadow: none !important;
    overflow: visible !important;
    animation: upload-compose-emoji-pop 0.18s ease-out;
}
@keyframes upload-compose-emoji-pop {
    from { opacity: 0; transform: translateY(-3px); }
    to { opacity: 1; transform: translateY(0); }
}
body.page-upload .upload-compose-card #editorouter td.embedded.forum-compose__emoji-toggle::after {
    content: "表情";
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child > table,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child > table {
    width: 100% !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child > table > tbody,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child > table > tbody {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 5px !important;
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child > table > tbody > tr,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child > table > tbody > tr {
    display: contents !important;
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child td.embedded,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child td.embedded {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: transparent !important;
    overflow: visible !important;
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child td.embedded:hover,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child td.embedded:hover {
    background: rgba(255, 238, 216, 0.82) !important;
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child img,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child img {
    display: block !important;
    max-width: 20px !important;
    max-height: 20px !important;
    transition: transform 0.12s ease;
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child a:hover img,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child a:hover img {
    transform: translateY(-1px) scale(1.08);
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child a:not(:has(img)),
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child a:not(:has(img)),
body.page-upload .upload-compose-card #editorouter.is-emoji-open .forum-compose__emoji-more {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    height: 26px !important;
    margin: 0 0 0 4px !important;
    padding: 0 10px !important;
    border: 1px solid rgba(224, 177, 113, 0.45) !important;
    border-radius: 999px !important;
    background: rgba(255, 247, 236, 0.9) !important;
    color: #8a5518 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tbody > tr:has(> td > textarea.bbcode) > td:last-child a:not(:has(img)):hover,
body.page-upload .upload-compose-card #editorouter.is-emoji-open
    > table > tr:has(> td > textarea.bbcode) > td:last-child a:not(:has(img)):hover,
body.page-upload .upload-compose-card #editorouter.is-emoji-open .forum-compose__emoji-more:hover {
    border-color: rgba(202, 145, 83, 0.6) !important;
    background: #fff5e6 !important;
    color: #6e4111 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"]) > input {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    color: transparent !important;
    font-size: 0 !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
    z-index: 1 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"]) {
    width: auto !important;
    min-width: 36px !important;
    height: 24px !important;
    padding: 0 9px !important;
    border: 1px solid rgba(220, 224, 228, 0.78) !important;
    border-radius: 8px !important;
    background: rgba(255, 255, 255, 0.96) !important;
    color: #675747 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"])::before {
    content: "表情";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 24px;
    pointer-events: none;
}

/* 与 forums.php?action=viewtopic 的快速回复工具栏保持一致：
 * B/I/U/S 保留文本，其余动作按钮用 FA 图标；颜色/字体/字号为裸文字下拉。 */
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"]) {
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: #655647 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"]):hover,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"]):hover {
    border: 0 !important;
    background: rgba(255, 238, 216, 0.82) !important;
    color: #8a5518 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"])::before {
    font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free" !important;
    font-weight: 900 !important;
    font-style: normal !important;
    font-size: 12.5px !important;
    line-height: 1 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"])::before      { content: "\f037" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"])::before         { content: "\f0c1" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"])::before         { content: "\f03e" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"])::before        { content: "\f03a" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"])::before       { content: "\f10e" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"])::before        { content: "\f121" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"])::before        { content: "\f070" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"])::before   { content: "\f15c" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"])::before    { content: "\f057" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"])::before { content: "\f118" !important; }
/* 最终对齐论坛快速回复：动作按钮必须是图标，不暴露 textbbcode 的旧英文 value。 */
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"]),
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"]) {
    position: relative !important;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: transparent !important;
    color: #655647 !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"]) > input,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"]) > input {
    position: absolute !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    opacity: 0 !important;
    color: transparent !important;
    font-size: 0 !important;
    text-indent: -9999px !important;
    line-height: 1 !important;
    overflow: hidden !important;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"])::before,
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"])::before {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Arial, Helvetica, sans-serif !important;
    font-weight: 700 !important;
    font-style: normal !important;
    font-size: 13px !important;
    line-height: 1 !important;
    color: inherit;
    pointer-events: none;
}
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="center"])::before      { content: "\2261" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="url"])::before         { content: "\1F517" !important; font-size: 12px !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="IMG"])::before         { content: "\25A7" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="list"])::before        { content: "\2630" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="quote"])::before       { content: "\201D" !important; font-size: 18px !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="code"])::before        { content: "</>" !important; font-size: 11px !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="hide"])::before        { content: "\25CC" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="Mediainfo"])::before   { content: "\25A3" !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="tagcount"])::before    { content: "\00D7" !important; font-size: 16px !important; }
body.page-upload .upload-compose-card #editorouter td.embedded:has(> input[name="_emojitoggle"])::before { content: "\263A" !important; font-size: 14px !important; }

/* 简介编辑器直接占满右侧单元格，不再像一张内嵌卡片套在 rowfollow 里。 */
body.page-upload .upload-editor-row > td.rowfollow {
    padding: 0 !important;
    background: rgba(255, 255, 255, 0.72);
}
body.page-upload .upload-editor-row .upload-compose-card {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}
body.page-upload .upload-editor-row .upload-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tbody > tr,
body.page-upload .upload-editor-row .upload-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tr {
    border: 0 !important;
    border-bottom: 1px solid rgba(222, 218, 210, 0.72) !important;
    border-radius: 0 !important;
}
body.page-upload .upload-editor-row .upload-compose-card #editorouter textarea.bbcode {
    padding: 14px !important;
}
body.page-upload .upload-tags-row td.rowfollow {
    display: flex;
    flex-direction: column;
    gap: 11px;
    align-items: stretch;
    padding-top: 14px;
    padding-bottom: 16px;
}
body.page-upload .upload-tags-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 16px;
}
body.page-upload .upload-tags-note {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: #a98b63;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
}
body.page-upload .upload-tags-note i {
    color: #d3a774;
    font-size: 12px;
}
body.page-upload .upload-tags-toolbar {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    white-space: nowrap;
}
body.page-upload .upload-tags-count {
    color: #9a571a;
    font-size: 12px;
    font-weight: 600;
}
body.page-upload .upload-tags-clear {
    padding: 2px 11px;
    border: 1px solid rgba(214, 150, 86, 0.5);
    border-radius: 999px;
    background: transparent;
    color: #9a571a;
    font-size: 12px;
    line-height: 1.6;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}
body.page-upload .upload-tags-clear.is-hidden {
    opacity: 0;
    pointer-events: none;
}
body.page-upload .upload-tags-clear:hover {
    background: rgba(231, 154, 70, 0.12);
    border-color: rgba(214, 150, 86, 0.8);
}
body.page-upload .upload-tag-group {
    display: flex;
    align-items: baseline;
    gap: 14px;
}
body.page-upload .upload-tag-group + .upload-tag-group {
    margin-top: 10px;
}
body.page-upload .upload-tag-group__label {
    flex: 0 0 auto;
    min-width: 52px;
    color: #b0a08a;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}
body.page-upload .upload-tag-group__items {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    flex: 1 1 auto;
}
body.page-upload .upload-tag--en {
    letter-spacing: 0.2px;
}
body.page-upload .upload-tag {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 4px 13px;
    border: 1px solid #e4dccf;
    border-radius: 999px;
    background: transparent;
    color: #7c6a52;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    cursor: pointer;
    user-select: none;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}
body.page-upload .upload-tag input[type="checkbox"] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: 0;
    opacity: 0;
    pointer-events: none;
}
body.page-upload .upload-tag span {
    display: inline-flex;
    align-items: center;
}
body.page-upload .upload-tag span::before {
    content: "\2713";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 0.82em;
    margin-right: 5px;
    overflow: hidden;
    opacity: 0;
    line-height: 1;
    transition: opacity 0.15s ease;
}
body.page-upload .upload-tag:hover {
    border-color: #d6a456;
    color: #9a571a;
}
body.page-upload .upload-tag:has(input:focus-visible) {
    outline: 2px solid rgba(214, 150, 86, 0.5);
    outline-offset: 2px;
}
body.page-upload .upload-tag:has(input:checked) {
    border-color: #e0964a;
    background: #fbe6ce;
    color: #92520f;
}
body.page-upload .upload-tag:has(input:checked) span::before {
    opacity: 1;
}
body.page-upload .upload-submit-row .toolbox {
    padding: 16px 18px;
    background: rgba(255, 252, 247, 0.9);
}
body.page-upload .upload-submit-row b {
    margin-right: 12px;
    color: #6f5d49;
    font-size: 13px;
}
body.page-upload .upload-submit {
    height: 34px;
    min-width: 108px;
    padding: 0 18px;
    border: 0;
    border-radius: 999px;
    background: rgba(245, 233, 214, 0.86);
    color: #7a572d !important;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
body.page-upload .upload-submit:hover {
    background: rgba(240, 226, 204, 0.98);
    color: #6b4b24 !important;
}
@media (max-width: 760px) {
    body.page-upload .upload-form-table,
    body.page-upload .upload-form-table tbody,
    body.page-upload .upload-form-table tr,
    body.page-upload .upload-form-table td {
        display: block;
        width: 100% !important;
    }
    body.page-upload .upload-form-table td.rowhead {
        padding-bottom: 4px;
        text-align: left;
    }
    body.page-upload .upload-form-table td.rowfollow,
    body.page-upload .upload-form-table tr > td:not(.rowhead):not(.colhead):not(.toolbox) {
        padding-top: 8px;
    }
    body.page-upload .upload-editor > table > tbody > tr:nth-child(2) {
        display: block;
    }
    body.page-upload .upload-editor > table > tbody > tr:nth-child(2) > td:last-child {
        margin-top: 12px;
    }
}

/* ------------------------------------------------------------
   edit.php 复用 page-upload 视觉的补充：
   单选按钮配色、重置/危险按钮、删除种子危险卡片
   ------------------------------------------------------------ */
/* 自定义单选框：去掉原生选中时的黑色外圈，改为焦糖描边 + 焦糖圆点 */
body.page-upload .upload-form-table input[type="radio"] {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin-right: 5px;
    vertical-align: -3px;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid #d8c4a8;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-upload .upload-form-table input[type="radio"]:hover {
    border-color: #d59043;
}
body.page-upload .upload-form-table input[type="radio"]:checked {
    border-color: #d59043;
    background: radial-gradient(circle, #d59043 0 4px, #fff 5px 100%);
}
body.page-upload .upload-form-table input[type="radio"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.25);
}
body.page-upload .upload-form-table td.rowfollow label {
    display: inline-flex;
    align-items: center;
    margin-right: 4px;
}
body.page-upload .upload-quality-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 4px;
}
body.page-upload .upload-submit--ghost {
    background: transparent;
    color: #9a8872 !important;
    box-shadow: inset 0 0 0 1px rgba(214, 192, 162, 0.9);
}
body.page-upload .upload-submit--ghost:hover {
    background: rgba(245, 233, 214, 0.55);
    color: #7a572d !important;
}
body.page-upload .upload-form--danger {
    margin-top: 18px;
}
body.page-upload .upload-section-head--danger h2 {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #b3331f;
}
body.page-upload .upload-section-head--danger i {
    color: #d24a32;
}
body.page-upload .upload-submit--danger {
    background: rgba(247, 222, 215, 0.9);
    color: #a5311c !important;
}
body.page-upload .upload-submit--danger:hover {
    background: rgba(243, 207, 198, 0.98);
    color: #8c2917 !important;
}

/* ============================================================
   用户详情页 userdetails.php —— 卡片化重构
   暖色调设计令牌，与 mybonus / attendance 等新版页面一致
   ============================================================ */
/* 中和 begin_main_frame() 产生的固定宽度 table.main 包裹层 */
body.page-userdetails #outer > table.main {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-userdetails #outer > table.main > tbody > tr > td.embedded {
    padding-left: var(--site-content-inline-gap, 26px) !important;
    padding-right: var(--site-content-inline-gap, 26px) !important;
}

body.page-userdetails .ud-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-userdetails .ud-page * {
    box-sizing: border-box;
}

/* ---------- Hero ---------- */
body.page-userdetails .ud-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
}
body.page-userdetails .ud-hero__avatar {
    flex: 0 0 auto;
    width: 96px;
    height: 96px;
    border-radius: 16px;
    overflow: hidden;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
}
body.page-userdetails .ud-hero__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-userdetails .ud-hero__main {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-userdetails .ud-hero__name {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: #2d2419;
}
body.page-userdetails .ud-hero__name img {
    vertical-align: middle;
}
body.page-userdetails .ud-gender {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 8px;
    font-size: 17px;
    line-height: 1;
    vertical-align: middle;
}
body.page-userdetails .ud-gender--male {
    color: #4f86c6;
}
body.page-userdetails .ud-gender--female {
    color: #e0709a;
}
body.page-userdetails .ud-gender--na {
    color: #a8927a;
}
.ud-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    vertical-align: middle;
}
.ud-status--warn {
    color: #e8973a;
}
.ud-status--ban {
    color: #d9534f;
}
.ud-status--donor {
    color: #f0b429;
}
body.page-userdetails .ud-hero__name .nowrap {
    display: inline-flex;
    align-items: center;
}
body.page-userdetails .ud-hero__name .ud-status {
    margin-left: 8px;
    font-size: 16px;
}
.site-userbar__name .nowrap {
    display: inline-flex;
    align-items: center;
}
.site-userbar__name .ud-status {
    margin-left: 5px;
    font-size: 13px;
}
body.page-userdetails .ud-flag {
    display: inline-block;
    width: 24px;
    height: 16px;
    margin-left: 8px;
    overflow: hidden;
    border-radius: 3px;
    vertical-align: middle;
    line-height: 0;
}
body.page-userdetails .ud-flag__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.18);
}
body.page-userdetails .ud-hero__badges {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
body.page-userdetails .ud-class {
    display: inline-flex;
    align-items: center;
    padding: 3px 12px;
    border-radius: 999px;
    background: transparent;
    font-size: 13px;
    font-weight: 700;
}
body.page-userdetails .ud-class b {
    font-weight: 700;
}
body.page-userdetails .ud-title-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 999px;
    background: rgba(90, 168, 106, 0.12);
    color: #4f8f5f;
    font-size: 13px;
    font-weight: 600;
}
body.page-userdetails .ud-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 22px;
    margin-top: 12px;
    color: #9b8874;
    font-size: 12.5px;
}
body.page-userdetails .ud-hero__meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
body.page-userdetails .ud-hero__meta i {
    color: #d59043;
}
body.page-userdetails .ud-hero__alert {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 8px 14px;
    border-radius: 10px;
    background: rgba(227, 114, 78, 0.12);
    color: #c4502b;
    font-size: 13px;
    font-weight: 600;
}
body.page-userdetails .ud-hero__actions {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-self: stretch;
    justify-content: center;
}
body.page-userdetails .ud-action {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 10px;
    border: 1px solid rgba(232, 222, 207, 0.9);
    background: #fff;
    color: #6b5a47 !important;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none !important;
    white-space: nowrap;
    transition: all 0.15s ease;
}
body.page-userdetails .ud-action i {
    font-size: 12px;
    color: #b7a187;
}
body.page-userdetails .ud-action:hover {
    border-color: rgba(214, 148, 80, 0.5);
    background: #fffaf2;
    color: #b9722e !important;
}
body.page-userdetails .ud-action:hover i {
    color: #d59043;
}
body.page-userdetails .ud-action--primary {
    border-color: transparent;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff !important;
}
body.page-userdetails .ud-action--primary i {
    color: rgba(255, 255, 255, 0.9);
}
body.page-userdetails .ud-action--primary:hover {
    background: linear-gradient(135deg, #e7903f, #c87f33);
    color: #fff !important;
}
body.page-userdetails .ud-action--primary:hover i {
    color: #fff;
}
body.page-userdetails .ud-action--danger:hover {
    border-color: rgba(227, 114, 78, 0.5);
    background: #fdf2ee;
    color: #c4502b !important;
}
body.page-userdetails .ud-action--danger:hover i {
    color: #d4623c;
}

/* ---------- 清除冗余种子提示 ---------- */
body.page-userdetails .ud-notice {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
    padding: 10px 16px;
    border: 1px dashed rgba(214, 148, 80, 0.45);
    border-radius: 12px;
    background: #fffaf2;
    color: #9b8874;
    font-size: 13px;
}
body.page-userdetails .ud-notice i {
    color: #d59043;
}
body.page-userdetails .ud-notice a {
    color: #b9722e;
    font-weight: 700;
}

/* ---------- 数据指标磁贴 ---------- */
body.page-userdetails .ud-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 14px;
    margin-top: 16px;
}
body.page-userdetails .ud-stat {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 14px;
    background: #fff;
}
body.page-userdetails .ud-stat__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(214, 148, 80, 0.12);
    color: #d59043;
    font-size: 15px;
}
body.page-userdetails .ud-stat__body {
    min-width: 0;
}
body.page-userdetails .ud-stat__value {
    font-size: 19px;
    font-weight: 700;
    line-height: 1.2;
    color: #2d2419;
    font-variant-numeric: tabular-nums;
    word-break: break-word;
}
body.page-userdetails .ud-stat__value img {
    vertical-align: middle;
}
body.page-userdetails .ud-stat__label {
    margin-top: 3px;
    color: #9b8874;
    font-size: 12px;
    font-weight: 600;
}

/* ---------- 卡片网格 ---------- */
body.page-userdetails .ud-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-top: 16px;
    align-items: start;
}
body.page-userdetails .ud-card {
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
body.page-userdetails .ud-card--full {
    grid-column: 1 / -1;
}
body.page-userdetails .ud-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
    color: #2d2419;
    font-size: 15px;
    font-weight: 700;
}
body.page-userdetails .ud-card__title i {
    color: #d59043;
    font-size: 14px;
}
body.page-userdetails .ud-card__body {
    padding: 6px 18px 10px;
}

/* ---------- 资料行 ---------- */
body.page-userdetails .ud-row {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 11px 0;
    border-bottom: 1px dashed rgba(229, 201, 168, 0.4);
}
body.page-userdetails .ud-row:last-child {
    border-bottom: 0;
}
body.page-userdetails .ud-row__label {
    flex: 0 0 132px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: #9b8874;
    font-size: 13px;
    font-weight: 600;
    padding-top: 1px;
}
body.page-userdetails .ud-row__label i {
    width: 14px;
    text-align: center;
    color: #c2ad93;
    font-size: 12px;
}
body.page-userdetails .ud-row__value {
    flex: 1 1 auto;
    min-width: 0;
    color: #5f4e3e;
    font-size: 13.5px;
    line-height: 1.6;
    word-break: break-word;
}
body.page-userdetails .ud-row__value a {
    color: #b9722e;
}
body.page-userdetails .ud-row__value a:hover {
    text-decoration: underline;
}

/* ---------- 勋章 ---------- */
body.page-userdetails .ud-medals {
    overflow-x: auto;
}
body.page-userdetails .ud-medals table {
    margin: 0;
}

/* ---------- 个人简介 ---------- */
body.page-userdetails .ud-info-text {
    font-size: 14px;
    line-height: 1.75;
    color: #5f4e3e;
}

/* ---------- 折叠列表 ---------- */
body.page-userdetails .ud-card--toggles .ud-card__body {
    padding: 12px 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
body.page-userdetails .ud-toggle {
    border: 1px solid rgba(232, 222, 207, 0.8);
    border-radius: 12px;
    overflow: hidden;
    background: #fffdf9;
}
body.page-userdetails .ud-toggle__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 11px 16px;
    color: #6b5a47 !important;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.15s ease;
}
body.page-userdetails .ud-toggle__head:hover {
    background: #fff6ea;
    color: #b9722e !important;
}
body.page-userdetails .ud-toggle__label {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}
body.page-userdetails .ud-toggle__label i {
    color: #d59043;
    font-size: 13px;
}
body.page-userdetails .ud-toggle__head i.plus,
body.page-userdetails .ud-toggle__head i.minus {
    flex: 0 0 auto;
    width: auto;
    height: auto;
    background: none;
    font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free";
    font-weight: 900;
    font-style: normal;
    font-size: 13px;
    line-height: 1;
    color: #c2ad93;
    transition: transform 0.2s ease, color 0.15s ease;
}
body.page-userdetails .ud-toggle__head i.plus::before,
body.page-userdetails .ud-toggle__head i.minus::before {
    content: "\f078";
}
body.page-userdetails .ud-toggle__head i.minus {
    transform: rotate(180deg);
    color: #d59043;
}
body.page-userdetails .ud-toggle__head:hover i.plus,
body.page-userdetails .ud-toggle__head:hover i.minus {
    color: #b9722e;
}
body.page-userdetails .ud-toggle__box {
    padding: 0 14px 12px;
}
body.page-userdetails .ud-toggle__box:not([style*="none"]) {
    border-top: 1px solid rgba(232, 222, 207, 0.6);
    padding-top: 12px;
}

/* ---------- 隐私拒绝 ---------- */
body.page-userdetails .ud-denied {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    padding: 48px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    text-align: center;
}
body.page-userdetails .ud-denied i {
    font-size: 32px;
    color: #c2ad93;
}
body.page-userdetails .ud-denied p {
    margin: 0;
    color: #9b8874;
    font-size: 14px;
}

/* ---------- 响应式 ---------- */
@media (max-width: 980px) {
    body.page-userdetails .ud-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}
@media (max-width: 720px) {
    body.page-userdetails .ud-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }
    body.page-userdetails .ud-hero__actions {
        flex-direction: row;
        flex-wrap: wrap;
        width: 100%;
    }
    body.page-userdetails .ud-action {
        flex: 1 1 auto;
        justify-content: center;
    }
    body.page-userdetails .ud-row {
        flex-direction: column;
        gap: 4px;
    }
    body.page-userdetails .ud-row__label {
        flex-basis: auto;
    }
}

/* ============================================================
   管理员编辑用户表单（沿用资料卡设计语言）
   ============================================================ */
body.page-userdetails .ud-form-wrap {
    margin-top: 16px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
body.page-userdetails .ud-form .ud-form__body {
    padding: 4px 18px 16px;
}

/* 表单主体表格：去掉旧的边框/底纹，改为虚线分隔的资料行 */
body.page-userdetails .ud-form__table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
    background: transparent;
}
body.page-userdetails .ud-form__table > tbody > tr {
    border-bottom: 1px dashed rgba(229, 201, 168, 0.4);
}
body.page-userdetails .ud-form__table > tbody > tr:last-child {
    border-bottom: 0;
}
body.page-userdetails .ud-form__table > tbody > tr > td {
    padding: 12px 0;
    vertical-align: top;
    background: transparent;
    border: 0;
}
body.page-userdetails .ud-form__table > tbody > tr > td.rowhead {
    width: 168px;
    padding-right: 18px;
    color: #9b8874;
    font-size: 13px;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
    line-height: 1.6;
    vertical-align: middle;
}
body.page-userdetails .ud-form__table > tbody > tr > td.rowfollow {
    color: #5f4e3e;
    font-size: 13.5px;
    line-height: 1.7;
}
body.page-userdetails .ud-form__table > tbody > tr > td.toolbox {
    text-align: center;
    padding-top: 20px;
    border-bottom: 0;
}

/* 多行行（文本域 / 警告系统等嵌套表格）：标签回退为顶对齐，与首行文字齐平 */
body.page-userdetails .ud-form__table > tbody > tr:has(textarea) > td.rowhead,
body.page-userdetails .ud-form__table > tbody > tr:has(table.main) > td.rowhead {
    vertical-align: top;
    padding-top: 20px;
}

/* 表单控件 */
body.page-userdetails .ud-form input[type="text"],
body.page-userdetails .ud-form input[type="password"],
body.page-userdetails .ud-form input[type="number"],
body.page-userdetails .ud-form input[type="email"],
body.page-userdetails .ud-form textarea {
    font: inherit;
    color: #5f4e3e;
    background: #fffdf9;
    border: 1px solid rgba(232, 222, 207, 0.9);
    border-radius: 8px;
    padding: 7px 10px;
    max-width: 100%;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-userdetails .ud-form textarea {
    width: 100%;
    max-width: 540px;
    line-height: 1.6;
    resize: vertical;
}
body.page-userdetails .ud-form input:focus,
body.page-userdetails .ud-form textarea:focus {
    outline: none;
    border-color: rgba(214, 148, 80, 0.6);
    box-shadow: 0 0 0 3px rgba(214, 148, 80, 0.12);
}
body.page-userdetails .ud-form input[type="radio"],
body.page-userdetails .ud-form input[type="checkbox"] {
    margin: 0 5px 0 14px;
    vertical-align: middle;
    accent-color: #d59043;
}
body.page-userdetails .ud-form td.rowfollow > input[type="radio"]:first-child,
body.page-userdetails .ud-form td.rowfollow > input[type="checkbox"]:first-child {
    margin-left: 0;
}
/* 自定义单选框：去掉原生选中时的黑色外圈，改为焦糖描边 + 焦糖圆点 */
body.page-userdetails .ud-form input[type="radio"] {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid #d8c4a8;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-userdetails .ud-form input[type="radio"]:hover {
    border-color: #d59043;
}
body.page-userdetails .ud-form input[type="radio"]:checked {
    border-color: #d59043;
    background: radial-gradient(circle, #d59043 0 4px, #fff 5px 100%);
}
body.page-userdetails .ud-form input[type="radio"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.25);
}
body.page-userdetails .ud-form label {
    margin-right: 4px;
    cursor: pointer;
}

/* 警告系统等嵌套表格 */
body.page-userdetails .ud-form table.main {
    border-collapse: separate;
    border-spacing: 0;
    margin: 4px 0;
    border: 1px solid rgba(232, 222, 207, 0.8);
    border-radius: 10px;
    overflow: hidden;
}
body.page-userdetails .ud-form table.main td {
    padding: 9px 12px;
    border: 0;
    border-bottom: 1px solid rgba(232, 222, 207, 0.55);
    background: #fffdf9;
    font-size: 13px;
    vertical-align: top;
}
body.page-userdetails .ud-form table.main tr:last-child td {
    border-bottom: 0;
}

/* 提交按钮 */
body.page-userdetails .ud-form input[type="submit"],
body.page-userdetails .ud-form .btn {
    font: inherit;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, #e89b50, #d59043);
    border: 0;
    border-radius: 10px;
    padding: 9px 24px;
    margin: 2px 4px;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.05s ease;
}
body.page-userdetails .ud-form input[type="submit"]:hover,
body.page-userdetails .ud-form .btn:hover {
    background: linear-gradient(135deg, #e7903f, #c87f33);
}
body.page-userdetails .ud-form input[type="submit"]:active,
body.page-userdetails .ud-form .btn:active {
    transform: translateY(1px);
}

@media (max-width: 720px) {
    body.page-userdetails .ud-form__table > tbody > tr {
        display: flex;
        flex-direction: column;
        gap: 4px;
        padding: 4px 0;
    }
    body.page-userdetails .ud-form__table > tbody > tr > td,
    body.page-userdetails .ud-form__table > tbody > tr > td.rowhead {
        width: auto;
        text-align: left;
        padding: 6px 0;
        white-space: normal;
    }
    body.page-userdetails .ud-form textarea {
        max-width: 100%;
    }
}

/* ============================================================
   "种子与记录" 折叠面板内的 AJAX 列表（种子列表 / 爆米花记录）
   —— 统一为资料卡设计语言
   ============================================================ */
body.page-userdetails .ud-toggle__box {
    color: #5f4e3e;
    font-size: 13px;
    line-height: 1.7;
    overflow-x: auto;
}
body.page-userdetails .ud-toggle__box a:not([class*="_Name"]) {
    color: #b9722e;
    font-weight: 600;
}
body.page-userdetails .ud-toggle__box a:hover {
    text-decoration: underline;
}
body.page-userdetails .ud-toggle__box b {
    color: #2d2419;
}
/* 操作人等用户名：保留等级/彩虹（_Name 类）颜色，<b> 继承链接色，
   不被上面 .ud-toggle__box a / b 的暖色覆盖 */
body.page-userdetails .ud-toggle__box a[class*="_Name"] b {
    color: inherit;
}

/* 列表表格：圆角描边、虚化分隔，去掉旧的黑/橙边框 */
body.page-userdetails .ud-toggle__box table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 8px 0 4px;
    border: 1px solid rgba(232, 222, 207, 0.8) !important;
    border-radius: 10px;
    border-collapse: separate !important;
    border-spacing: 0;
    overflow: hidden;
    background: #fff;
}
body.page-userdetails .ud-toggle__box td {
    border: 0 !important;
    border-bottom: 1px solid rgba(232, 222, 207, 0.5) !important;
    padding: 8px 10px !important;
    background: transparent;
    font-size: 12.5px;
    vertical-align: middle;
}
body.page-userdetails .ud-toggle__box tr:last-child td {
    border-bottom: 0 !important;
}

/* 表头 */
body.page-userdetails .ud-toggle__box td.colhead {
    background: linear-gradient(135deg, #fffdf9, #fff7ec) !important;
    color: #4b3a28 !important;
    font-weight: 600;
    font-size: 12.5px;
    white-space: nowrap;
    border-bottom: 1px solid rgba(232, 222, 207, 0.7) !important;
}

/* 表头图标：复用 torrents.php 的图标，但浅色表头需改用深焦糖色才看得清 */
body.page-userdetails .ud-toggle__box td.colhead .torrent-colhead-icon {
    width: auto;
    height: auto;
    color: #b9722e;
}
body.page-userdetails .ud-toggle__box td.colhead .torrent-colhead-icon i {
    font-size: 13px;
}

/* 数据行（种子表的 .rowfollow 与爆米花表的无类 td 都覆盖） */
body.page-userdetails .ud-toggle__box td.rowfollow {
    color: #5f4e3e;
    background: #fff;
}
body.page-userdetails .ud-toggle__box tr:hover td:not(.colhead) {
    background: #fffaf2;
}

/* 爆米花记录表自带内联 70% 宽度，铺满折叠面板 */
body.page-userdetails .ud-toggle__box table.comments_table {
    width: 100% !important;
    margin: 8px 0 4px !important;
}

/* ============================================================
   控制面板 usercp.php —— 卡片化重构（沿用 userdetails 资料卡设计语言）
   hero banner + 胶囊导航 + 设置卡片 + 表单行（复用旧 tr/tr_small 输出）
   ============================================================ */
body.page-usercp .usercp-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-usercp .usercp-page * {
    box-sizing: border-box;
}

/* ---------- Hero ---------- */
body.page-usercp .usercp-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
}
body.page-usercp .usercp-hero__badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-usercp .usercp-hero__text {
    min-width: 0;
}
body.page-usercp .usercp-hero__title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: #2d2419;
}
body.page-usercp .usercp-hero__sub {
    margin: 6px 0 0;
    color: #9b8874;
    font-size: 13px;
}

/* ---------- 胶囊导航 ---------- */
body.page-usercp .usercp-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
    padding: 10px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 14px;
    background: #fff;
}
body.page-usercp .usercp-nav__item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 16px;
    border-radius: 10px;
    color: #6b5a47 !important;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease;
}
body.page-usercp .usercp-nav__item i {
    font-size: 13px;
    color: #b7a187;
    transition: color 0.15s ease;
}
body.page-usercp .usercp-nav__item:hover {
    background: #fff6ea;
    color: #b9722e !important;
}
body.page-usercp .usercp-nav__item:hover i {
    color: #d59043;
}
body.page-usercp .usercp-nav__item.is-active {
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff !important;
}
body.page-usercp .usercp-nav__item.is-active i {
    color: rgba(255, 255, 255, 0.92);
}

/* ---------- 保存成功提示 ---------- */
body.page-usercp .usercp-saved {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 16px;
    padding: 11px 16px;
    border: 1px solid rgba(90, 168, 106, 0.35);
    border-radius: 12px;
    background: rgba(90, 168, 106, 0.1);
    color: #4f8f5f;
    font-size: 13.5px;
    font-weight: 600;
}
body.page-usercp .usercp-saved i {
    font-size: 15px;
}

/* ---------- 设置卡片 ---------- */
body.page-usercp .usercp-card {
    margin-top: 16px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
body.page-usercp .usercp-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
    color: #2d2419;
    font-size: 15px;
    font-weight: 700;
}
body.page-usercp .usercp-card__title i {
    color: #d59043;
    font-size: 14px;
}
body.page-usercp .usercp-card__body {
    padding: 6px 18px 12px;
}

/* ---------- 表单行（复用旧 tr/tr_small 的 rowhead/rowfollow 结构） ---------- */
body.page-usercp .usercp-form__table {
    width: 100%;
    border-collapse: collapse;
    margin: 0;
    background: transparent;
}
body.page-usercp .usercp-form__table > tbody > tr {
    border-bottom: 1px dashed rgba(229, 201, 168, 0.4);
}
body.page-usercp .usercp-form__table > tbody > tr:last-child {
    border-bottom: 0;
}
body.page-usercp .usercp-form__table > tbody > tr > td {
    padding: 13px 0;
    vertical-align: top;
    background: transparent;
    border: 0;
}
body.page-usercp .usercp-form__table > tbody > tr > td.rowhead,
body.page-usercp .usercp-form__table > tbody > tr > td.heading {
    width: 200px;
    padding-right: 18px;
    padding-top: 15px;
    color: #9b8874;
    font-size: 13px;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
    line-height: 1.6;
    vertical-align: top;
}
body.page-usercp .usercp-form__table > tbody > tr > td.rowfollow {
    color: #5f4e3e;
    font-size: 13.5px;
    line-height: 1.9;
}
body.page-usercp .usercp-form__table > tbody > tr > td.toolbox {
    text-align: center;
    padding-top: 20px;
    border-bottom: 0;
}

/* 卡内只读信息行（home 页）：值左对齐、链接焦糖色 */
body.page-usercp .usercp-form__table > tbody > tr > td.rowfollow a {
    color: #b9722e;
}
body.page-usercp .usercp-form__table > tbody > tr > td.rowfollow a:hover {
    text-decoration: underline;
}

/* 小字注释 */
body.page-usercp .usercp-card__body .small,
body.page-usercp .usercp-card__body font.small,
body.page-usercp .usercp-card__body .small font {
    color: #9b8874;
    font-size: 12px;
}
body.page-usercp .usercp-card__body font.big,
body.page-usercp .usercp-card__body .big {
    color: #4b3a28;
    font-size: 14px;
    font-weight: 600;
}

/* ---------- 表单控件 ---------- */
body.page-usercp .usercp-form input[type="text"],
body.page-usercp .usercp-form input[type="password"],
body.page-usercp .usercp-form input[type="number"],
body.page-usercp .usercp-form input[type="email"],
body.page-usercp .usercp-form textarea {
    font-family: inherit;
    font-size: inherit;
    line-height: normal;
    vertical-align: middle;
    color: #5f4e3e;
    background: #fffdf9;
    border: 1px solid rgba(232, 222, 207, 0.9);
    border-radius: 8px;
    padding: 6px 10px;
    margin: 0 6px;
    max-width: 100%;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-usercp .usercp-form textarea {
    width: 100%;
    max-width: 640px;
    line-height: 1.6;
    resize: vertical;
}
/* 小尺寸输入框（带 size 属性，多为数字/短文本）内容居中更美观 */
body.page-usercp .usercp-form input[type="text"][size] {
    text-align: center;
}
body.page-usercp .usercp-form input:focus,
body.page-usercp .usercp-form textarea:focus {
    outline: none;
    border-color: rgba(214, 148, 80, 0.6);
    box-shadow: 0 0 0 3px rgba(214, 148, 80, 0.12);
}
body.page-usercp .usercp-form input[type="radio"],
body.page-usercp .usercp-form input[type="checkbox"] {
    margin: 0 6px 0 14px;
    vertical-align: middle;
    accent-color: #d59043;
}
body.page-usercp .usercp-form td.rowfollow > input[type="radio"]:first-child,
body.page-usercp .usercp-form td.rowfollow > input[type="checkbox"]:first-child {
    margin-left: 0;
}
/* 自定义单选框：焦糖描边 + 焦糖圆点 */
body.page-usercp .usercp-form input[type="radio"] {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid #d8c4a8;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-usercp .usercp-form input[type="radio"]:hover {
    border-color: #d59043;
}
body.page-usercp .usercp-form input[type="radio"]:checked {
    border-color: #d59043;
    background: radial-gradient(circle, #d59043 0 4px, #fff 5px 100%);
}
body.page-usercp .usercp-form input[type="radio"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.25);
}
body.page-usercp .usercp-form input[type="checkbox"] {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid #d8c4a8;
    border-radius: 5px;
    background: #fff;
    cursor: pointer;
    position: relative;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
body.page-usercp .usercp-form input[type="checkbox"]:hover {
    border-color: #d59043;
}
body.page-usercp .usercp-form input[type="checkbox"]:checked {
    border-color: #d59043;
    background: #d59043;
}
body.page-usercp .usercp-form input[type="checkbox"]:checked::after {
    content: "";
    position: absolute;
    left: 4px;
    top: 1px;
    width: 4px;
    height: 8px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
body.page-usercp .usercp-form input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.25);
}
body.page-usercp .usercp-form input[type="checkbox"]:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* 提交按钮 */
body.page-usercp .usercp-form input[type="submit"],
body.page-usercp .usercp-form .btn {
    font: inherit;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, #e89b50, #d59043);
    border: 0;
    border-radius: 10px;
    padding: 10px 28px;
    margin: 2px 4px;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.05s ease;
}
body.page-usercp .usercp-form input[type="submit"]:hover,
body.page-usercp .usercp-form .btn:hover {
    background: linear-gradient(135deg, #e7903f, #c87f33);
}
body.page-usercp .usercp-form input[type="submit"]:active,
body.page-usercp .usercp-form .btn:active {
    transform: translateY(1px);
}

/* ---------- ui-dropdown 页面级修饰（白底 + 边框 + 13px + 聚焦光圈） ---------- */
body.page-usercp .usercp-dd {
    vertical-align: middle;
    margin: 2px 4px 2px 0;
}
body.page-usercp .usercp-dd .ui-dropdown-trigger {
    box-sizing: border-box;
    height: 32px;
    min-width: 118px;
    padding: 0 30px 0 12px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 500;
    box-shadow: none;
}
body.page-usercp .usercp-dd:hover .ui-dropdown-trigger,
body.page-usercp .usercp-dd:focus-within .ui-dropdown-trigger,
body.page-usercp .usercp-dd .ui-dropdown-trigger:hover,
body.page-usercp .usercp-dd .ui-dropdown-trigger:focus {
    transform: none;
    border-color: rgba(214, 150, 86, 0.75);
    background: #fffaf2;
    color: #6f3a00;
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.18);
}
body.page-usercp .usercp-dd .ui-dropdown-list {
    min-width: 100%;
    max-height: 280px;
    overflow: auto;
}
body.page-usercp .usercp-dd .ui-dropdown-list a {
    font-size: 12.5px;
    white-space: nowrap;
}

/* 残留的原生 <select>（少量内嵌于复杂拼接中）：暖色风格，与 ui-dropdown 视觉对齐 */
body.page-usercp .usercp-form select {
    box-sizing: border-box;
    min-height: 32px;
    padding: 5px 28px 5px 12px;
    border: 1px solid rgba(224, 208, 184, 0.9);
    border-radius: 10px;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23b89568' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 11px center;
    color: #5f4e3e;
    font: inherit;
    font-size: 13px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-usercp .usercp-form select:hover {
    border-color: rgba(214, 150, 86, 0.6);
}
body.page-usercp .usercp-form select:focus {
    outline: none;
    border-color: rgba(214, 150, 86, 0.75);
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.18);
}

/* “补充设定”分组：标题 + 下拉项卡片化栅格 */
body.page-usercp .usercp-optgroup {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed rgba(224, 208, 184, 0.7);
}
body.page-usercp .usercp-optgroup__title {
    font-size: 13.5px;
    font-weight: 700;
    color: #8a6a45;
    margin-bottom: 10px;
}
body.page-usercp .usercp-optgrid {
    display: flex;
    flex-wrap: wrap;
    gap: 14px 22px;
}
body.page-usercp .usercp-opt {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 150px;
}
body.page-usercp .usercp-opt__label {
    font-size: 12.5px;
    font-weight: 600;
    color: #6f5b45;
}
body.page-usercp .usercp-opt .usercp-dd {
    margin: 0;
}
body.page-usercp .usercp-opt .usercp-dd .ui-dropdown-trigger {
    width: 100%;
}

/* 子配置块小节：焦糖小标题 + 细虚线分隔 + 统一留白 */
body.page-usercp .usercp-subsecs {
    margin-top: 6px;
}
body.page-usercp .usercp-subsec {
    padding: 13px 0;
    border-top: 1px dashed rgba(224, 208, 184, 0.7);
}
body.page-usercp .usercp-subsec:first-child {
    border-top: none;
    padding-top: 4px;
}
body.page-usercp .usercp-subsec:last-child {
    padding-bottom: 2px;
}
body.page-usercp .usercp-subsec__title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #8a6a45;
    margin-bottom: 9px;
}
body.page-usercp .usercp-subsec__title::before {
    content: "";
    width: 4px;
    height: 13px;
    border-radius: 2px;
    background: #d8b079;
    flex: none;
}
body.page-usercp .usercp-subsec__body {
    color: #5f4e3e;
    line-height: 1.75;
}
/* 富组件（下拉/多选/色块）自带行高，避免继承小节正文的宽松行高造成纵向漂移 */
body.page-usercp .usercp-subsec__body .ui-dropdown,
body.page-usercp .usercp-subsec__body .torrent-meta-multiselect,
body.page-usercp .usercp-subsec__body .usercp-color-item {
    line-height: normal;
}

/* 颜色选择器：原生 input[type=color] 的焦糖暖色外壳 */
body.page-usercp .usercp-color-group__title {
    font-size: 12px;
    font-weight: 600;
    color: #8a6a45;
    margin-bottom: 6px;
}
body.page-usercp .usercp-color-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin: 3px 16px 3px 0;
    white-space: nowrap;
    vertical-align: middle;
}
body.page-usercp .usercp-color-swatch {
    width: 30px;
    height: 24px;
    padding: 2px;
    border: 1px solid #e3d4ba;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(141, 108, 61, 0.08);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}
body.page-usercp .usercp-color-swatch:hover {
    border-color: #d59043;
    box-shadow: 0 2px 7px rgba(213, 144, 67, 0.18);
}
body.page-usercp .usercp-color-swatch::-webkit-color-swatch-wrapper {
    padding: 0;
}
body.page-usercp .usercp-color-swatch::-webkit-color-swatch {
    border: none;
    border-radius: 5px;
}
body.page-usercp .usercp-color-swatch::-moz-color-swatch {
    border: none;
    border-radius: 5px;
}
body.page-usercp .usercp-color-item__label {
    font-size: 12.5px;
    color: #5f4e3e;
}
body.page-usercp .usercp-color-reset {
    font-size: 11px;
    color: #b09a7a;
    text-decoration: none;
    transition: color 0.15s ease;
}
body.page-usercp .usercp-color-reset:hover {
    color: #d59043;
    text-decoration: none;
}
body.page-usercp .usercp-color-reset::before {
    content: "↺ ";
}

/* 点击即复制的密钥 / RSS 密钥 */
body.page-usercp .ucp-copykey {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 10px;
    border: 1px dashed rgba(214, 150, 86, 0.55);
    border-radius: 8px;
    background: rgba(244, 191, 138, 0.1);
    color: #8a6a45;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 13px;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}
body.page-usercp .ucp-copykey:hover {
    background: rgba(244, 191, 138, 0.22);
    border-color: rgba(214, 150, 86, 0.85);
}
body.page-usercp .ucp-copykey i {
    opacity: 0.7;
}

/* 分类图标网格、内嵌小表格去掉旧边框 */
body.page-usercp .usercp-form__table table {
    border: 0;
    background: transparent;
}
body.page-usercp .usercp-form__table table td {
    border: 0;
    background: transparent;
}

/* ---------- 响应式 ---------- */
@media (max-width: 720px) {
    body.page-usercp .usercp-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }
    body.page-usercp .usercp-form__table > tbody > tr {
        display: flex;
        flex-direction: column;
        gap: 4px;
        padding: 8px 0;
    }
    body.page-usercp .usercp-form__table > tbody > tr > td,
    body.page-usercp .usercp-form__table > tbody > tr > td.rowhead,
    body.page-usercp .usercp-form__table > tbody > tr > td.heading {
        width: auto;
        text-align: left;
        padding: 4px 0;
        white-space: normal;
    }
    body.page-usercp .usercp-form textarea {
        max-width: 100%;
    }
}

/* ==========================================================================
   勋章中心 medal_center.php —— 卡片化重构（焦糖暖色主题）
   ========================================================================== */
body.page-medal_center .medal-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-medal_center .medal-page * {
    box-sizing: border-box;
}

/* ---------- Hero ---------- */
body.page-medal_center .medal-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
}
body.page-medal_center .medal-hero__badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-medal_center .medal-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-medal_center .medal-hero__title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: #2d2419;
}
body.page-medal_center .medal-hero__sub {
    margin: 6px 0 0;
    color: #9b8874;
    font-size: 13px;
}
body.page-medal_center .medal-hero__balance {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    padding: 10px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-medal_center .medal-hero__balance-label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
}
body.page-medal_center .medal-hero__balance-label i {
    color: #d59043;
}
body.page-medal_center .medal-hero__balance-value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}

/* ---------- 区块卡片 ---------- */
body.page-medal_center .medal-card-block {
    margin-top: 16px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
body.page-medal_center .medal-block__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
    color: #2d2419;
    font-size: 15px;
    font-weight: 700;
}
body.page-medal_center .medal-block__title i {
    color: #d59043;
    font-size: 14px;
}

/* ---------- 勋章商店：标题栏 + 筛选开关 ---------- */
body.page-medal_center .medal-shop-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px 18px;
    flex-wrap: wrap;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
}
body.page-medal_center .medal-shop-head .medal-block__title {
    padding: 0;
    border-bottom: 0;
    background: none;
}
body.page-medal_center .medal-shop-filters {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}
body.page-medal_center .medal-filter-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}
body.page-medal_center .medal-filter-toggle input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}
body.page-medal_center .medal-filter-toggle__track {
    position: relative;
    flex: 0 0 auto;
    width: 34px;
    height: 18px;
    border-radius: 999px;
    background: #e3d8c8;
    transition: background .2s ease;
}
body.page-medal_center .medal-filter-toggle__thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
    transition: transform .2s ease;
}
body.page-medal_center .medal-filter-toggle input:checked + .medal-filter-toggle__track {
    background: #d59043;
}
body.page-medal_center .medal-filter-toggle input:checked + .medal-filter-toggle__track .medal-filter-toggle__thumb {
    transform: translateX(16px);
}
body.page-medal_center .medal-filter-toggle input:focus-visible + .medal-filter-toggle__track {
    outline: 2px solid #d59043;
    outline-offset: 2px;
}
body.page-medal_center .medal-filter-toggle__text {
    color: #9b8874;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
body.page-medal_center .medal-filter-toggle input:checked ~ .medal-filter-toggle__text {
    color: #a05f1d;
}
body.page-medal_center .medal-item.is-filtered-out {
    display: none;
}
body.page-medal_center .medal-shop__empty {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 28px 16px;
    color: #9b8874;
    font-size: 13.5px;
}
body.page-medal_center .medal-shop__empty i {
    color: #d8c4a8;
}
body.page-medal_center .medal-shop__empty[hidden] {
    display: none;
}

/* ---------- 勋章商店：分类分组 + 折叠/展开 ---------- */
body.page-medal_center .medal-group {
    border-top: 1px solid rgba(232, 222, 207, 0.55);
}
body.page-medal_center .medal-group:first-child {
    border-top: 0;
}
body.page-medal_center .medal-group.is-empty {
    display: none;
}
body.page-medal_center .medal-group__head {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 12px 18px;
    border: 0;
    background: linear-gradient(135deg, #fffefd, #fffaf5);
    color: #2d2419;
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    text-align: left;
    cursor: pointer;
    transition: background 0.15s ease;
}
body.page-medal_center .medal-group__head:hover {
    background: linear-gradient(135deg, #fffaf5, #fff2e8);
}
body.page-medal_center .medal-group__head:focus-visible {
    outline: 2px solid #d59043;
    outline-offset: -2px;
}
body.page-medal_center .medal-group__chevron {
    color: #b08a5a;
    font-size: 12px;
    transition: transform 0.25s ease;
}
body.page-medal_center .medal-group.is-collapsed .medal-group__chevron {
    transform: rotate(-90deg);
}
body.page-medal_center .medal-group__icon {
    color: #d59043;
    font-size: 13px;
}
body.page-medal_center .medal-group__count {
    flex: 0 0 auto;
    min-width: 22px;
    padding: 1px 8px;
    border-radius: 999px;
    background: rgba(214, 150, 86, 0.16);
    color: #b9722e;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}
body.page-medal_center .medal-group__body {
    display: grid;
    grid-template-rows: 1fr;
    transition: grid-template-rows 0.3s ease;
}
body.page-medal_center .medal-group.is-collapsed .medal-group__body {
    grid-template-rows: 0fr;
}
body.page-medal_center .medal-group__body > .medal-shop {
    min-height: 0;
    overflow: hidden;
    padding-top: 6px;
    transition: padding-top 0.3s ease, padding-bottom 0.3s ease;
}
body.page-medal_center .medal-group.is-collapsed .medal-group__body > .medal-shop {
    padding-top: 0;
    padding-bottom: 0;
}
body.page-medal_center .medal-shop-groups__empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 28px 16px;
    color: #9b8874;
    font-size: 13.5px;
}
body.page-medal_center .medal-shop-groups__empty i {
    color: #d8c4a8;
}
body.page-medal_center .medal-shop-groups__empty[hidden] {
    display: none;
}

/* ---------- 我的勋章 ---------- */
body.page-medal_center .medal-mine {
    padding: 18px;
}
body.page-medal_center .medal-mine__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}
body.page-medal_center .medal-mine__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: none;
}
body.page-medal_center .medal-mine__item .medalcontainer,
body.page-medal_center .medal-mine__item .medalcontainer a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
body.page-medal_center .medal-mine__item img {
    margin: 0 !important;
    height: 104px !important;
    width: auto !important;
    max-width: 100% !important;
    max-height: none !important;
}
body.page-medal_center .medal-mine__empty {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 28px 16px;
    color: #b09a7a;
    font-size: 13.5px;
}
body.page-medal_center .medal-mine__empty i {
    font-size: 18px;
    color: #d8c4a8;
}

/* ---------- 勋章商店网格 ---------- */
body.page-medal_center .medal-shop {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    align-items: stretch;
    gap: 16px;
    padding: 18px;
}
body.page-medal_center .medal-item {
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(232, 222, 207, 0.8);
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
    transition: transform 0.12s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
body.page-medal_center .medal-item:hover {
    transform: translateY(-2px);
    border-color: rgba(214, 150, 86, 0.55);
    box-shadow: 0 10px 24px rgba(141, 108, 61, 0.12);
}
body.page-medal_center .medal-item.is-soldout {
    opacity: 0.72;
}

/* 勋章图区 */
body.page-medal_center .medal-item__art {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 188px;
    padding: 18px;
    background: #fffdfb;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
}
body.page-medal_center .medal-item__art .medalcontainer,
body.page-medal_center .medal-item__art .medalcontainer a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
body.page-medal_center .medal-item__art .medalcontainer img {
    margin: 0 !important;
    max-width: 100% !important;
    max-height: 152px !important;
    width: auto !important;
    height: auto !important;
}
body.page-medal_center .medal-item__ribbon {
    position: absolute;
    top: 10px;
    right: 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    color: #fff;
}
body.page-medal_center .medal-item__ribbon--owned {
    background: linear-gradient(135deg, #5aa86a, #4f8f5f);
}
body.page-medal_center .medal-item__ribbon--soldout {
    background: #b4a48f;
}

/* 勋章正文 */
body.page-medal_center .medal-item__body {
    flex: 1 1 auto;
    padding: 14px 16px 6px;
}
body.page-medal_center .medal-item__name {
    margin: 0 0 6px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    color: #2d2419;
}
body.page-medal_center .medal-item__desc {
    margin: 0 0 12px;
    color: #9b8874;
    font-size: 12.5px;
    line-height: 1.6;
}

/* 元信息 */
body.page-medal_center .medal-item__meta {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
body.page-medal_center .medal-item__meta li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 12.5px;
}
body.page-medal_center .medal-item__meta-k {
    color: #9b8874;
}
body.page-medal_center .medal-item__meta-v {
    color: #5f4e3e;
    font-weight: 600;
    text-align: right;
}
body.page-medal_center .medal-item__price {
    color: #b9722e;
}
body.page-medal_center .medal-item__price i {
    color: #d59043;
}
body.page-medal_center .medal-item__buff {
    color: #4f8f5f;
}

/* 卡片底部：购买类型 + 购买表单 */
body.page-medal_center .medal-item__foot {
    padding: 12px 16px 16px;
    margin-top: auto;
    border-top: 1px dashed rgba(229, 201, 168, 0.6);
}
body.page-medal_center .medal-item__type {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 600;
    margin-bottom: 10px;
}
body.page-medal_center .medal-item__type--free {
    background: rgba(214, 150, 86, 0.14);
    color: #b9722e;
}
body.page-medal_center .medal-item__type--manual {
    background: rgba(123, 134, 168, 0.16);
    color: #6b7396;
}
body.page-medal_center .medal-item__note {
    margin: 0;
    color: #9b8874;
    font-size: 12px;
    line-height: 1.6;
}
body.page-medal_center .medal-item__buy {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
body.page-medal_center .medal-item__uid {
    width: 100%;
    font-family: inherit;
    font-size: 12.5px;
    color: #5f4e3e;
    background: #fffdf9;
    border: 1px solid rgba(232, 222, 207, 0.9);
    border-radius: 8px;
    padding: 7px 10px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-medal_center .medal-item__uid:focus {
    outline: none;
    border-color: rgba(214, 148, 80, 0.6);
    box-shadow: 0 0 0 3px rgba(214, 148, 80, 0.12);
}
body.page-medal_center .medal-item__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, #e89b50, #d59043);
    border: 0;
    border-radius: 10px;
    padding: 9px 18px;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.05s ease;
}
body.page-medal_center .medal-item__btn:hover:not(:disabled) {
    background: linear-gradient(135deg, #e7903f, #c87f33);
}
body.page-medal_center .medal-item__btn:active:not(:disabled) {
    transform: translateY(1px);
}
body.page-medal_center .medal-item__btn:disabled {
    background: #e3d4ba;
    color: #fffdf9;
    cursor: not-allowed;
}
body.page-medal_center .medal-item__hint {
    margin: 0;
    color: #b09a7a;
    font-size: 11px;
    line-height: 1.5;
}

/* 购买按钮 loading 态 */
body.page-medal_center .medal-item__btn.is-loading {
    opacity: 0.85;
    cursor: progress;
}
body.page-medal_center .medal-item__btn.is-loading i {
    animation: medal-spin 0.7s linear infinite;
}
@keyframes medal-spin {
    to { transform: rotate(360deg); }
}

/* ---------- 响应式 ---------- */
@media (max-width: 720px) {
    body.page-medal_center .medal-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }
    body.page-medal_center .medal-hero__balance {
        align-items: flex-start;
    }
    body.page-medal_center .medal-shop {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   21 点 blackjack.php —— 卡片化重构（焦糖暖色主题，沿用 medal_center 设计语言）
   ========================================================================== */
body.page-blackjack .bj-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1040px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-blackjack .bj-page * {
    box-sizing: border-box;
}

/* ---------- Hero ---------- */
body.page-blackjack .bj-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
}
body.page-blackjack .bj-hero__badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-blackjack .bj-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-blackjack .bj-hero__title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: #2d2419;
}
body.page-blackjack .bj-hero__sub {
    margin: 6px 0 0;
    color: #9b8874;
    font-size: 13px;
}
body.page-blackjack .bj-hero__balance {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    padding: 10px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-blackjack .bj-hero__balance-label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
}
body.page-blackjack .bj-hero__balance-label i {
    color: #d59043;
}
body.page-blackjack .bj-hero__balance-value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}

/* ---------- 通用卡片 ---------- */
body.page-blackjack .bj-card {
    margin-top: 16px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
body.page-blackjack .bj-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
    color: #2d2419;
    font-size: 15px;
    font-weight: 700;
}
body.page-blackjack .bj-card__title i {
    color: #d59043;
    font-size: 14px;
}
body.page-blackjack .bj-card__body {
    padding: 18px;
}

/* ---------- 落地页双栏布局 ---------- */
body.page-blackjack .bj-layout {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 16px;
    align-items: start;
}
body.page-blackjack .bj-layout .bj-card {
    margin-top: 0;
}

/* ---------- 玩法说明 ---------- */
body.page-blackjack .bj-sample {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 16px;
}
body.page-blackjack .bj-rules {
    margin: 0 0 16px;
    color: #7a6a59;
    font-size: 13px;
    line-height: 1.7;
    text-align: center;
}
body.page-blackjack .bj-info {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 12px;
    overflow: hidden;
}
body.page-blackjack .bj-info li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 14px;
    font-size: 13px;
    background: #fffdf9;
}
body.page-blackjack .bj-info li:nth-child(even) {
    background: #fff;
}
body.page-blackjack .bj-info__k {
    color: #9b8874;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
body.page-blackjack .bj-info__k i {
    color: #d59043;
}
body.page-blackjack .bj-info__v {
    color: #5f4e3e;
    font-weight: 600;
}
body.page-blackjack .bj-info__v--accent {
    color: #b9722e;
}

/* ---------- 个人记录 ---------- */
body.page-blackjack .bj-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
body.page-blackjack .bj-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 16px 12px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 12px;
    background: linear-gradient(135deg, #fffdf9, #fff6ea);
}
body.page-blackjack .bj-stat--wide {
    grid-column: 1 / -1;
}
body.page-blackjack .bj-stat__value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}
body.page-blackjack .bj-stat__label {
    font-size: 12px;
    color: #9b8874;
}

/* ---------- 牌局卡片 ---------- */
body.page-blackjack .bj-game-card {
    max-width: 560px;
    margin-left: auto;
    margin-right: auto;
}
body.page-blackjack .bj-game-card .bj-card__body {
    text-align: center;
}
body.page-blackjack .bj-hand {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-bottom: 18px;
}
body.page-blackjack .bj-card-img {
    width: 78px;
    height: auto;
    border-radius: 8px;
    border: 1px solid rgba(232, 222, 207, 0.9) !important;
    box-shadow: 0 4px 12px rgba(141, 108, 61, 0.14);
    background: #fff;
}
body.page-blackjack .bj-points {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 10px 26px;
    margin-bottom: 18px;
    border-radius: 14px;
    background: linear-gradient(135deg, #fffdf9, #fff6ea);
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-blackjack .bj-points__label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
}
body.page-blackjack .bj-points__value {
    font-size: 30px;
    font-weight: 800;
    color: #b9722e;
    line-height: 1;
}
body.page-blackjack .bj-game-card__below {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

/* ---------- 结果横幅 ---------- */
body.page-blackjack .bj-result {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    padding: 14px 18px;
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.6;
    text-align: left;
}
body.page-blackjack .bj-result i {
    flex: 0 0 auto;
    font-size: 18px;
}
body.page-blackjack .bj-result--win {
    background: rgba(90, 168, 106, 0.14);
    color: #3f8453;
}
body.page-blackjack .bj-result--lose {
    background: rgba(214, 102, 92, 0.14);
    color: #c0584f;
}
body.page-blackjack .bj-result--draw {
    background: rgba(123, 134, 168, 0.16);
    color: #6b7396;
}
body.page-blackjack .bj-result--wait {
    background: rgba(214, 150, 86, 0.14);
    color: #b9722e;
}

/* ---------- 操作按钮 ---------- */
body.page-blackjack .bj-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}
body.page-blackjack .bj-actions--start {
    margin-top: 4px;
}
body.page-blackjack .bj-form {
    margin: 0;
}
body.page-blackjack .bj-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    text-decoration: none;
    color: #fff;
    background: linear-gradient(135deg, #e89b50, #d59043);
    border: 0;
    border-radius: 10px;
    padding: 9px 20px;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.05s ease, box-shadow 0.15s ease;
}
body.page-blackjack .bj-btn:hover {
    background: linear-gradient(135deg, #e7903f, #c87f33);
    box-shadow: 0 6px 16px rgba(213, 144, 67, 0.24);
}
body.page-blackjack .bj-btn:active {
    transform: translateY(1px);
}
body.page-blackjack .bj-btn--ghost {
    color: #b9722e;
    background: #fff;
    border: 1px solid rgba(214, 150, 86, 0.55);
}
body.page-blackjack .bj-btn--ghost:hover {
    background: rgba(214, 150, 86, 0.1);
    box-shadow: none;
}
body.page-blackjack .bj-btn:disabled {
    cursor: not-allowed;
    opacity: 0.7;
}
body.page-blackjack .bj-btn.is-loading {
    cursor: progress;
}
body.page-blackjack .bj-btn.is-loading i {
    animation: bj-spin 0.7s linear infinite;
}
@keyframes bj-spin {
    to { transform: rotate(360deg); }
}
body.page-blackjack .bj-wait-note {
    margin: 0 0 12px;
    color: #b9722e;
    font-size: 13px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

/* ---------- 响应式 ---------- */
@media (max-width: 720px) {
    body.page-blackjack .bj-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }
    body.page-blackjack .bj-hero__balance {
        align-items: flex-start;
    }
    body.page-blackjack .bj-layout {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   邀请系统 invite.php —— 卡片化重构（沿用站点暖色设计语言）
   ============================================================ */
body.page-invite #outer > table.main {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-invite .invite-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-invite .invite-page * {
    box-sizing: border-box;
}

/* ---------- Hero ---------- */
body.page-invite .invite-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
}
body.page-invite .invite-hero__badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-invite .invite-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-invite .invite-hero__title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    color: #2d2419;
}
body.page-invite .invite-hero__title a {
    color: #2d2419;
    text-decoration: none;
}
body.page-invite .invite-hero__title a:hover {
    color: #b9722e;
}
body.page-invite .invite-hero__sub {
    margin: 6px 0 0;
    color: #9b8874;
    font-size: 13px;
}
body.page-invite .invite-hero__stat {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    padding: 10px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-invite .invite-hero__stat-label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
}
body.page-invite .invite-hero__stat-label i {
    color: #d59043;
}
body.page-invite .invite-hero__stat-value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}

/* ---------- 通知 / 空状态 ---------- */
body.page-invite .invite-notice {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    padding: 12px 18px;
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 600;
}
body.page-invite .invite-notice--success {
    color: #1f7309;
    background: #eef8ea;
    border: 1px solid rgba(31, 115, 9, 0.25);
}
body.page-invite .invite-notice--success i {
    font-size: 16px;
}
body.page-invite .invite-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 16px;
    padding: 40px 20px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    color: #9b8874;
    text-align: center;
}
body.page-invite .invite-empty i {
    font-size: 30px;
    color: #d8c4a8;
}
body.page-invite .invite-empty p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
}
body.page-invite .invite-empty--inset {
    margin-top: 0;
    border: 0;
    border-radius: 0;
    padding: 36px 20px;
}

/* ---------- 区块卡片 ---------- */
body.page-invite .invite-card {
    margin-top: 16px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
body.page-invite .invite-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
    color: #2d2419;
    font-size: 15px;
    font-weight: 700;
}
body.page-invite .invite-card__title > i {
    color: #d59043;
    font-size: 14px;
}
body.page-invite .invite-card__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 7px;
    border-radius: 999px;
    background: #f3e6d3;
    color: #a05f1d;
    font-size: 12px;
    font-weight: 700;
}
body.page-invite .invite-card__toolbar {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
body.page-invite .invite-card__toolbar form {
    margin: 0;
}
body.page-invite .invite-card__note {
    color: #9b8874;
    font-size: 12px;
    font-weight: 600;
}
body.page-invite .invite-card__body {
    padding: 18px;
}
body.page-invite .invite-card__body--flush {
    padding: 0;
}

/* ---------- 名额票券 ---------- */
body.page-invite .invite-tickets {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 12px;
}
body.page-invite .invite-ticket {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas:
        "icon body qty"
        "icon meta meta";
    align-items: center;
    column-gap: 12px;
    row-gap: 4px;
    padding: 12px 14px;
    border: 1px solid rgba(232, 222, 207, 0.8);
    border-radius: 12px;
    background:
        radial-gradient(circle at 58px 0, #fff 0 7px, transparent 7.5px),
        radial-gradient(circle at 58px 100%, #fff 0 7px, transparent 7.5px),
        linear-gradient(90deg, rgba(214, 150, 86, 0.06) 0 58px, transparent 58px),
        linear-gradient(135deg, #fffefd, #fffaf5);
    overflow: hidden;
}
body.page-invite .invite-ticket::before {
    content: "";
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 58px;
    border-left: 1px dashed rgba(213, 144, 67, 0.46);
    pointer-events: none;
}
body.page-invite .invite-ticket__icon {
    grid-area: icon;
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    color: #fff;
    font-size: 16px;
}
body.page-invite .invite-ticket__icon--perm {
    background: linear-gradient(135deg, #e89b50, #d59043);
}
body.page-invite .invite-ticket__icon--temp {
    background: linear-gradient(135deg, #8bb6d6, #5f93bd);
}
body.page-invite .invite-ticket__body {
    grid-area: body;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
/* 有效期固定在第二行（对齐标题列），不与数量/输入框争抢宽度，避免重叠 */
body.page-invite .invite-ticket__meta {
    grid-area: meta;
}
body.page-invite .invite-ticket__name {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    font-size: 13.5px;
    font-weight: 700;
    color: #2d2419;
}
body.page-invite .invite-ticket__name-text {
    white-space: nowrap;
}
body.page-invite .invite-ticket__tag {
    padding: 1px 6px;
    border-radius: 6px;
    background: #eaf2f8;
    color: #3f7197;
    font-size: 11px;
    font-weight: 600;
}
body.page-invite .invite-ticket__meta {
    font-size: 12px;
    color: #9b8874;
    white-space: nowrap;
}
body.page-invite .invite-ticket__meta i {
    color: #c9b59a;
}
body.page-invite .invite-ticket__qty {
    grid-area: qty;
    justify-self: end;
    align-self: center;
    font-size: 20px;
    font-weight: 700;
    color: #b9722e;
}
body.page-invite .invite-ticket__input {
    grid-area: qty;
    justify-self: end;
    align-self: center;
    width: 70px;
    padding: 6px 8px;
    border: 1px solid rgba(213, 144, 67, 0.5);
    border-radius: 8px;
    font-size: 14px;
    text-align: center;
    color: #5f4e3e;
}
body.page-invite .invite-ticket__input:focus {
    outline: none;
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.15);
}

/* ---------- 表单 ---------- */
body.page-invite .invite-form__row {
    display: flex;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px dashed rgba(229, 201, 168, 0.5);
}
body.page-invite .invite-form__row:first-child {
    padding-top: 0;
}
body.page-invite .invite-form__label {
    flex: 0 0 96px;
    padding-top: 8px;
    font-size: 13.5px;
    font-weight: 700;
    color: #2d2419;
}
body.page-invite .invite-form__field {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-invite .invite-form__hint {
    margin: 6px 0 0;
    font-size: 12px;
    color: #9b8874;
    line-height: 1.6;
}
body.page-invite .invite-input {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid rgba(232, 222, 207, 0.9);
    border-radius: 10px;
    background: #fffdf9;
    color: #5f4e3e;
    font-size: 13.5px;
    font-family: inherit;
}
body.page-invite .invite-input:focus {
    outline: none;
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.15);
    background: #fff;
}
body.page-invite .invite-textarea {
    resize: vertical;
    line-height: 1.7;
}
body.page-invite .invite-form__confirm {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 10px;
    background: #fdf6ec;
    border: 1px solid rgba(232, 222, 207, 0.8);
    font-size: 12.5px;
    color: #7a6a58;
    line-height: 1.6;
    cursor: pointer;
}
body.page-invite .invite-form__confirm input {
    margin-top: 2px;
    flex: 0 0 auto;
}
body.page-invite .invite-form__actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
}

/* ---------- 按钮 ---------- */
body.page-invite .invite-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    border: 0;
    border-radius: 10px;
    font-size: 13.5px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    transition: filter .15s ease, background .15s ease, box-shadow .15s ease;
}
body.page-invite .invite-btn--sm {
    padding: 7px 14px;
    font-size: 12.5px;
}
body.page-invite .invite-btn--primary {
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
}
body.page-invite .invite-btn--primary:hover {
    filter: brightness(1.05);
}
body.page-invite .invite-btn--ghost {
    background: #fff;
    color: #9b8874;
    border: 1px solid rgba(232, 222, 207, 0.9);
}
body.page-invite .invite-btn--ghost:hover {
    color: #b9722e;
    border-color: #d8c4a8;
}

/* ---------- 数据表格 ---------- */
body.page-invite .invite-table-wrap {
    width: 100%;
    overflow-x: auto;
}
body.page-invite .invite-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
body.page-invite .invite-table thead th {
    padding: 11px 14px;
    text-align: left;
    white-space: nowrap;
    background: #fffdfb;
    color: #6f5f4d;
    font-size: 12px;
    font-weight: 700;
    border-bottom: 1px solid rgba(232, 222, 207, 0.62);
}
body.page-invite .invite-table tbody td {
    padding: 11px 14px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.45);
    color: #5f4e3e;
    vertical-align: middle;
}
body.page-invite .invite-table tbody tr:last-child td {
    border-bottom: 0;
}
body.page-invite .invite-table tbody tr:hover td {
    background: #fffaf2;
}
body.page-invite .invite-table__num {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
body.page-invite .invite-table__muted {
    color: #9b8874;
}
body.page-invite .invite-table__nowrap {
    white-space: nowrap;
}
body.page-invite .invite-table__check {
    text-align: center;
    width: 56px;
}
body.page-invite .invite-table__link {
    min-width: 280px;
}
body.page-invite .invite-input--readonly {
    padding: 6px 10px;
    font-size: 12px;
    cursor: pointer;
    color: #7a6a58;
}
body.page-invite .invite-input--readonly.is-copied {
    border-color: rgba(82, 150, 92, 0.58);
    background: #f0f7f1;
    color: #32a852;
    font-weight: 700;
    text-align: center;
    box-shadow: 0 0 0 2px rgba(82, 150, 92, 0.10);
}
body.page-invite .invite-input--readonly.is-copy-failed {
    border-color: rgba(164, 66, 59, 0.45);
    background: #faf2f1;
    color: #a4423b;
    font-weight: 700;
    text-align: center;
}
body.page-invite .invite-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}
body.page-invite .invite-status--ok {
    background: #eef8ea;
    color: #1f7309;
}
body.page-invite .invite-status--pending {
    background: #fdeceb;
    color: #ca0226;
}
body.page-invite .invite-status:hover {
    filter: brightness(0.97);
}
body.page-invite .invite-table-foot {
    display: flex;
    justify-content: flex-end;
    padding: 14px 18px;
    border-top: 1px solid rgba(232, 222, 207, 0.6);
    background: #fdfaf4;
}
body.page-invite .invite-pager {
    margin-top: 14px;
    text-align: center;
}

/* ---------- 响应式 ---------- */
@media (max-width: 720px) {
    body.page-invite .invite-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }
    body.page-invite .invite-hero__stat {
        align-items: flex-start;
    }
    body.page-invite .invite-form__row {
        flex-direction: column;
        gap: 8px;
    }
    body.page-invite .invite-form__label {
        flex-basis: auto;
        padding-top: 0;
    }
}

/* ============================================================
 * getrss.php —— RSS 订阅生成（站内工具页）
 * 克制卡片、轻装饰、清晰筛选态，尽量贴近站点原生页面。
 * ============================================================ */
body.page-getrss #outer > table.main {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-getrss .rss-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
    --rss-accent: #d59043;
    --rss-accent-2: #f0bd72;
    --rss-accent-dark: #a05f1d;
    --rss-ink: #2d2419;
    --rss-muted: #9b8874;
    --rss-line: rgba(232, 222, 207, 0.7);
    --rss-soft-line: rgba(229, 201, 168, 0.32);
    --rss-panel: #ffffff;
    --rss-page-bg: #fff;
    --rss-tint: rgba(214, 148, 80, 0.10);
    --rss-tint-strong: rgba(214, 148, 80, 0.16);
    --rss-shadow: none;
}
body.page-getrss .rss-page * {
    box-sizing: border-box;
}
body.page-getrss .rss-svg {
    display: block;
    width: 1em;
    height: 1em;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}
body.page-getrss .rss-svg path,
body.page-getrss .rss-svg circle,
body.page-getrss .rss-svg rect {
    vector-effect: non-scaling-stroke;
}

/* ---------- Hero ---------- */
body.page-getrss .rss-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 14px;
    padding: 14px 18px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 14px;
    background: #fff;
    box-shadow: none;
}
body.page-getrss .rss-hero::after {
    content: none;
}
body.page-getrss .rss-hero__badge {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 10px;
    background: rgba(214, 148, 80, 0.12);
    color: var(--rss-accent);
    font-size: 14px;
    box-shadow: none;
}
body.page-getrss .rss-hero__badge .rss-svg {
    stroke-width: 2.3;
}
body.page-getrss .rss-hero__text {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-width: 0;
}
body.page-getrss .rss-hero__title {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0;
    color: var(--rss-ink);
}
body.page-getrss .rss-hero__sub {
    margin: 4px 0 0;
    color: var(--rss-muted);
    font-size: 13px;
    line-height: 1.55;
    font-weight: 400;
}

/* ---------- 区块卡片 ---------- */
body.page-getrss .rss-card {
    margin-top: 14px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 14px;
    background: var(--rss-panel);
    box-shadow: none;
    overflow: hidden;
}
body.page-getrss .rss-card__title {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    padding: 13px 16px;
    border-bottom: 1px solid rgba(229, 201, 168, 0.32);
    background: #fff;
    color: var(--rss-ink);
    font-size: 14px;
    font-weight: 700;
}
body.page-getrss .rss-card__title > .rss-svg {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: content-box;
    width: 13px;
    height: 13px;
    padding: 5px;
    border-radius: 8px;
    background: rgba(214, 148, 80, 0.12);
    color: var(--rss-accent);
}
body.page-getrss .rss-card__body {
    padding: 16px;
}

/* ---------- 生成结果 ---------- */
body.page-getrss .rss-result {
    border-color: rgba(213, 144, 67, 0.45);
    background: #fff;
}
body.page-getrss .rss-result--success .rss-card__title {
    color: #6f4a1d;
}
body.page-getrss .rss-result--success .rss-card__title > .rss-svg {
    background: rgba(214, 148, 80, 0.14);
    color: var(--rss-accent);
}
body.page-getrss .rss-result--error {
    border-color: rgba(192, 83, 57, 0.45);
}
body.page-getrss .rss-result--error .rss-card__title {
    color: #8a3f30;
}
body.page-getrss .rss-result--error .rss-card__title > .rss-svg {
    background: rgba(192, 83, 57, 0.10);
    color: #c05339;
}
body.page-getrss .rss-result__fields {
    display: grid;
    gap: 12px;
}
body.page-getrss .rss-result__field {
    display: grid;
    gap: 6px;
    margin: 0;
}
body.page-getrss .rss-result__field > span {
    color: #7a6752;
    font-size: 12px;
    font-weight: 700;
}
body.page-getrss .rss-result__field input {
    box-sizing: border-box;
    width: 100%;
    min-height: 34px;
    margin: 0;
    padding: 7px 10px;
    border: 1px solid rgba(229, 201, 168, 0.72);
    border-radius: 9px;
    background: #fff;
    color: #5f4e3e;
    font-size: 12px;
    font-family: inherit;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
body.page-getrss .rss-result__field input:hover {
    border-color: rgba(191, 113, 36, 0.42);
    background: #fffaf5;
}
body.page-getrss .rss-result__field input.is-copied {
    border-color: rgba(82, 150, 92, 0.58);
    background: #f0f7f1;
    color: #32a852;
    font-weight: 700;
    text-align: center;
    box-shadow: 0 0 0 2px rgba(82, 150, 92, 0.10);
}
body.page-getrss .rss-result__field input.is-copy-failed {
    border-color: rgba(164, 66, 59, 0.45);
    background: #faf2f1;
    color: #a4423b;
    font-weight: 700;
    text-align: center;
}
body.page-getrss .rss-result__field input:focus {
    outline: none;
    border-color: rgba(191, 113, 36, 0.5);
    box-shadow: 0 0 0 2px rgba(234, 122, 34, 0.10);
}
body.page-getrss .rss-result__message {
    margin: 0;
    color: #8a3f30;
    font-size: 13px;
    font-weight: 700;
}

/* ---------- 可折叠高级筛选 ---------- */
body.page-getrss details.rss-card > summary {
    list-style: none;
    cursor: pointer;
}
body.page-getrss details.rss-card > summary::-webkit-details-marker {
    display: none;
}
body.page-getrss .rss-fold__meta {
    margin-left: auto;
    color: var(--rss-muted);
    font-size: 12px;
    font-weight: 600;
}
body.page-getrss .rss-fold__chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 8px;
    color: #b7a187;
    background: #fff;
    transition: transform .18s ease, background .18s ease;
}
body.page-getrss .rss-fold__chevron .rss-svg {
    width: 13px;
    height: 13px;
}
body.page-getrss details[open] .rss-fold__chevron {
    transform: rotate(180deg);
    background: rgba(214, 148, 80, 0.08);
}
body.page-getrss details.rss-fold:not([open]) {
    box-shadow: none;
}
body.page-getrss details.rss-fold:not([open]) .rss-card__title {
    border-bottom: 0;
}

/* 次级卡片两列网格：收藏 / 标题格式 / 种子类型 / 每页条数 */
body.page-getrss .rss-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 14px;
}
body.page-getrss .rss-grid .rss-card {
    margin-top: 0;
}

/* 含 ui-dropdown 浮层的卡片需放开裁剪，否则浮层被 overflow:hidden 截断 */
body.page-getrss .rss-card--dd {
    overflow: visible;
}
body.page-getrss .rss-card--dd .rss-card__title {
    border-radius: 14px 14px 0 0;
}
body.page-getrss .rss-card--dd .rss-card__body {
    display: flex;
    align-items: center;
}
body.page-getrss .rss-dd {
    display: inline-block;
    min-width: 136px;
}
body.page-getrss .rss-dd .ui-dropdown-trigger {
    box-sizing: border-box;
    justify-content: space-between;
    width: 100%;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid rgba(229, 201, 168, 0.72);
    border-radius: 9px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 700;
    box-shadow: none;
}
body.page-getrss .rss-dd .ui-dropdown-trigger::after {
    margin-left: auto;
    color: var(--rss-accent);
    font-size: 11px;
}
body.page-getrss .rss-dd:hover .ui-dropdown-trigger,
body.page-getrss .rss-dd:focus-within .ui-dropdown-trigger,
body.page-getrss .rss-dd .ui-dropdown-trigger:hover,
body.page-getrss .rss-dd .ui-dropdown-trigger:focus {
    border-color: rgba(191, 113, 36, 0.5);
    background: #fffaf5;
    color: #6f3a00;
    box-shadow: 0 0 0 2px rgba(234, 122, 34, 0.10);
    transform: none;
}
body.page-getrss .rss-dd > .ui-dropdown-list {
    top: auto;
    bottom: 100%;
    width: 100%;
    min-width: 136px;
    margin: 0 0 4px !important;
}
body.page-getrss .rss-dd::after {
    top: auto;
    bottom: 100%;
}
body.page-getrss .rss-dd .ui-dropdown-list li a {
    min-width: 136px;
    font-size: 13px !important;
    font-weight: 700 !important;
    padding: 9px 14px !important;
}

/* 选项卡片内的"控件 + 内联说明"行 */
body.page-getrss .rss-field {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
}
body.page-getrss .rss-note {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #9b8874;
    font-size: 12px;
    line-height: 1.4;
}
body.page-getrss .rss-note .rss-svg {
    width: 14px;
    height: 14px;
    color: #b99b78;
}

/* ---------- 分类分组 ---------- */
body.page-getrss .rss-group {
    padding: 15px 0;
    border-bottom: 1px dashed rgba(229, 201, 168, 0.5);
}
body.page-getrss .rss-group:first-child {
    padding-top: 0;
}
body.page-getrss .rss-group:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}
body.page-getrss .rss-group__label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    font-size: 13px;
    font-weight: 700;
    color: var(--rss-ink);
}
body.page-getrss .rss-group__label::before {
    content: "";
    width: 3px;
    height: 14px;
    border-radius: 2px;
    background: #d59043;
}

/* ---------- 分类图标磁贴 ---------- */
body.page-getrss .rss-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
    gap: 10px;
}
body.page-getrss .rss-tile {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 78px;
    padding: 12px 8px 10px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    text-align: center;
    transition: border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
body.page-getrss .rss-tile input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
body.page-getrss .rss-tile__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
}
body.page-getrss .rss-tile__icon img {
    display: block;
    max-width: 100%;
    max-height: 34px;
}
body.page-getrss .rss-tile__icon a {
    display: inline-flex;
    line-height: 0;
    pointer-events: none;
}
body.page-getrss .rss-tile__name {
    font-size: 12px;
    font-weight: 600;
    color: #5f4e3e;
    line-height: 1.25;
}
body.page-getrss .rss-tile__check {
    position: absolute;
    top: 7px;
    right: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    border: 1px solid rgba(229, 201, 168, 0.72);
    border-radius: 50%;
    background: #fff;
    color: transparent;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    transition: color .16s ease, border-color .16s ease, background .16s ease, transform .16s ease;
}
body.page-getrss .rss-tile:hover {
    border-color: rgba(214, 148, 80, 0.5);
    box-shadow: 0 4px 14px rgba(116, 79, 40, 0.06);
}
body.page-getrss .rss-tile:has(input:checked) {
    border-color: rgba(213, 144, 67, 0.58);
    background: var(--rss-tint);
    box-shadow: 0 6px 18px rgba(116, 79, 40, 0.10);
}
body.page-getrss .rss-tile:has(input:checked) .rss-tile__name {
    color: var(--rss-accent-dark);
}
body.page-getrss .rss-tile:has(input:checked) .rss-tile__check {
    border-color: var(--rss-accent);
    background: var(--rss-accent);
    color: #fff;
    transform: scale(1);
}
body.page-getrss .rss-tile:focus-within {
    outline: 2px solid rgba(234, 122, 34, 0.16);
    outline-offset: 2px;
}

/* ---------- 胶囊多选（子分类 / 标签 / 标题格式） ---------- */
body.page-getrss .rss-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
body.page-getrss .rss-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 11px;
    border: 1px solid rgba(229, 201, 168, 0.72);
    border-radius: 999px;
    background: #fff;
    color: #5f4e3e;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}
body.page-getrss .rss-chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
body.page-getrss .rss-chip__check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 13px;
    height: 13px;
    border: 1px solid rgba(229, 201, 168, 0.72);
    border-radius: 50%;
    color: transparent;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    transition: color .16s ease, border-color .16s ease, background .16s ease;
}
body.page-getrss .rss-chip:hover {
    border-color: rgba(214, 148, 80, 0.5);
    color: #a05f1d;
}
body.page-getrss .rss-chip:has(input:checked) {
    border-color: rgba(213, 144, 67, 0.58);
    background: var(--rss-tint);
    color: #a05f1d;
    box-shadow: none;
}
body.page-getrss .rss-chip:has(input:checked) .rss-chip__check {
    border-color: var(--rss-accent);
    background: var(--rss-accent);
    color: #fff;
}
body.page-getrss .rss-chip--disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

/* ---------- 分段单选（收藏 / 种子类型） ---------- */
body.page-getrss .rss-segment {
    display: inline-flex;
    flex-wrap: wrap;
    padding: 4px;
    border-radius: 10px;
    background: #f6f0e8;
    border: 1px solid rgba(232, 222, 207, 0.7);
    gap: 3px;
}
body.page-getrss .rss-segment input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
body.page-getrss .rss-segment label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: #8b7660;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
body.page-getrss .rss-segment label:hover {
    color: #a05f1d;
}
body.page-getrss .rss-segment input:checked + label {
    background: #fff;
    color: #a05f1d;
    box-shadow: 0 1px 4px rgba(77, 58, 38, 0.10);
}

/* ---------- 提交按钮 ---------- */
body.page-getrss .rss-actions {
    display: flex;
    justify-content: center;
    margin-top: 18px;
}
body.page-getrss .rss-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 28px;
    border: 0;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 700;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}
body.page-getrss .rss-btn .rss-svg {
    width: 17px;
    height: 17px;
}
body.page-getrss .rss-btn--primary {
    background: var(--rss-accent);
    color: #fff;
    box-shadow: 0 4px 10px rgba(191, 113, 36, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.28);
}
body.page-getrss .rss-btn--primary:hover {
    transform: none;
    filter: brightness(1.03);
    box-shadow: 0 4px 10px rgba(162, 84, 24, 0.22);
}
body.page-getrss .rss-btn--primary:active {
    transform: translateY(0);
}
body.page-getrss .rss-btn:disabled,
body.page-getrss .rss-btn[aria-busy="true"] {
    cursor: wait;
    opacity: 0.72;
    filter: grayscale(0.12);
}
/* ---------- 响应式 ---------- */
@media (max-width: 720px) {
    body.page-getrss .rss-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
        padding: 16px;
    }
    body.page-getrss .rss-grid {
        grid-template-columns: 1fr;
    }
    body.page-getrss .rss-tiles {
        grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
    }
    body.page-getrss .rss-fold__meta {
        display: none;
    }
    body.page-getrss .rss-actions .rss-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================================
 * 社交名单页（friends.php）—— 对齐 invite.php 的卡片化暖色设计语言。
 * ========================================================================== */
body.page-friends #outer > table.main {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-friends .friends-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-friends .friends-page * {
    box-sizing: border-box;
}

/* ---- hero ---- */
body.page-friends .friends-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
}
body.page-friends .friends-hero::before {
    content: none;
}
body.page-friends .friends-hero__badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-friends .friends-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-friends .friends-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
}
body.page-friends .friends-hero__sub {
    margin: 6px 0 0;
    color: #9b8874;
    font-size: 13px;
}
body.page-friends .friends-hero__sub a {
    font-weight: 700;
}
body.page-friends .friends-hero__stats {
    flex: 0 0 auto;
    display: flex;
    align-items: stretch;
    gap: 10px;
}
body.page-friends .friends-hero__stat {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 92px;
    padding: 10px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-friends .friends-hero__stat-label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
    white-space: nowrap;
}
body.page-friends .friends-hero__stat-label i {
    color: #d59043;
}
body.page-friends .friends-hero__stat-value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}

/* ---- 区块卡片 ---- */
body.page-friends .friends-section {
    margin-top: 16px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
body.page-friends .friends-section__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
}
body.page-friends .friends-section__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 15px;
    font-weight: 700;
}
body.page-friends .friends-section__title i {
    color: #d59043;
    font-size: 14px;
}
body.page-friends #blocks .friends-section__title i {
    color: #d59043;
}
body.page-friends .friends-section__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 7px;
    border-radius: 999px;
    background: #f3e6d3;
    color: #a05f1d;
    font-size: 12px;
    font-weight: 700;
}

/* ---- 好友卡片网格 ---- */
body.page-friends .friends-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(296px, 1fr));
    gap: 16px;
    padding: 20px;
}
body.page-friends .friends-card {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border: 1px solid rgba(232, 222, 207, 0.82);
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #fffaf2 100%);
    box-shadow: 0 1px 2px rgba(90, 66, 36, 0.04), 0 10px 24px rgba(90, 66, 36, 0.05);
    overflow: hidden;
    transition: transform 0.24s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.24s ease, border-color 0.24s ease;
}
/* 顶部高亮条：悬浮时淡入 */
body.page-friends .friends-card::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 3px;
    background: linear-gradient(90deg, #f3b86f, #d59043);
    opacity: 0;
    transition: opacity 0.24s ease;
    z-index: 2;
}
body.page-friends .friends-card::after {
    content: "";
    position: absolute;
    right: -40px;
    top: -52px;
    width: 130px;
    height: 130px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(232, 155, 80, 0.10), rgba(232, 155, 80, 0) 70%);
    pointer-events: none;
}
body.page-friends .friends-card:hover {
    border-color: rgba(213, 144, 67, 0.4);
    box-shadow: 0 2px 4px rgba(90, 66, 36, 0.05), 0 18px 36px rgba(199, 131, 64, 0.15);
    transform: translateY(-4px);
}
body.page-friends .friends-card:hover::before {
    opacity: 1;
}
body.page-friends .friends-card__avatar {
    position: relative;
    z-index: 1;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(232, 178, 106, 0.45), 0 8px 16px rgba(90, 66, 36, 0.14);
    transition: box-shadow 0.24s ease;
}
body.page-friends .friends-card:hover .friends-card__avatar {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(213, 144, 67, 0.7), 0 10px 20px rgba(199, 131, 64, 0.22);
}
body.page-friends .friends-card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-friends .friends-card__main {
    position: relative;
    z-index: 1;
    flex: 1 1 120px;
    min-width: 0;
}
body.page-friends .friends-card__name {
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.page-friends .friends-card__title {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    margin-top: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(243, 233, 219, 0.55);
    color: #8a7050;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.page-friends .friends-card__meta {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    color: #9a8872;
    font-size: 12px;
}
body.page-friends .friends-card__meta i {
    color: #c7a98a;
    font-size: 11px;
}
body.page-friends .friends-card__never {
    color: #b3a48f;
    font-style: italic;
}
body.page-friends .friends-card__actions {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: 8px;
    flex: 1 1 100%;
    width: 100%;
    padding-top: 14px;
    border-top: 1px dashed rgba(228, 214, 194, 0.95);
}
/* ---- 按钮 ---- */
body.page-friends .friends-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 8px 14px;
    border: 1px solid rgba(232, 222, 207, 0.95);
    border-radius: 11px;
    background: #fff;
    color: #9b8874 !important;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
body.page-friends .friends-btn i {
    font-size: 12px;
}
/* 卡片内操作按钮：按内容自适应宽度（紧凑） */
body.page-friends .friends-card__actions .friends-btn {
    flex: 0 0 auto;
    gap: 5px;
    padding: 5px 11px;
    border-radius: 9px;
    font-size: 12px;
    background: linear-gradient(135deg, #fff4e4, #ffe7ca);
    border-color: rgba(232, 196, 150, 0.7);
    color: #b9722e !important;
}
body.page-friends .friends-card__actions .friends-btn i {
    font-size: 11px;
}
body.page-friends .friends-card__actions .friends-btn:hover {
    background: linear-gradient(135deg, #ffecd4, #ffdfb8);
    border-color: rgba(213, 144, 67, 0.78);
    box-shadow: 0 5px 12px rgba(213, 144, 67, 0.2);
    transform: translateY(-1px);
}
body.page-friends .friends-card__actions .friends-btn--danger {
    background: #fff6f4;
    border-color: rgba(224, 168, 160, 0.62);
    color: #c2564d !important;
}
body.page-friends .friends-card__actions .friends-btn--danger:hover {
    background: #ffecea;
    border-color: rgba(203, 99, 87, 0.74);
    color: #b0443c !important;
    box-shadow: 0 5px 12px rgba(196, 92, 80, 0.16);
}
body.page-friends .friends-btn--primary {
    color: #fff !important;
    border: 0;
    background: linear-gradient(135deg, #e89b50, #d59043);
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
    padding: 10px 22px;
    border-radius: 999px;
    font-size: 13.5px;
}
body.page-friends .friends-btn--primary:hover {
    color: #fff !important;
    filter: brightness(1.05);
    transform: translateY(-1px);
    box-shadow: 0 9px 18px rgba(213, 144, 67, 0.3);
}

/* ---- 空状态 ---- */
body.page-friends .friends-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 36px 20px;
    background: #fff;
    color: #9b8874;
    text-align: center;
    font-size: 14px;
}
body.page-friends .friends-empty i {
    font-size: 30px;
    color: #d8c4a8;
}
body.page-friends .friends-empty em {
    font-style: normal;
}

/* ---- 黑名单 chip（标签式流式布局，按内容自适应宽度） ---- */
body.page-friends .friends-blocks {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding: 20px;
}
body.page-friends .friends-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    max-width: 100%;
    padding: 8px 10px 8px 8px;
    border: 1px solid rgba(232, 222, 207, 0.82);
    border-radius: 999px;
    background: linear-gradient(180deg, #ffffff 0%, #fffaf2 100%);
    box-shadow: 0 1px 2px rgba(90, 66, 36, 0.03), 0 6px 16px rgba(90, 66, 36, 0.045);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
body.page-friends .friends-chip:hover {
    border-color: rgba(213, 144, 67, 0.4);
    box-shadow: 0 2px 4px rgba(90, 66, 36, 0.04), 0 12px 24px rgba(199, 131, 64, 0.12);
    transform: translateY(-3px);
}
body.page-friends .friends-chip__avatar {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
    box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(232, 178, 106, 0.38);
}
body.page-friends .friends-chip__name {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 160px;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.page-friends .friends-chip__del {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(226, 214, 196, 0.85);
    background: #faf6f0;
    color: #b0a290 !important;
    font-size: 12px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}
body.page-friends .friends-chip__del:hover {
    border-color: rgba(203, 99, 87, 0.74);
    background: #ffecea;
    color: #c2564d !important;
    box-shadow: 0 4px 10px rgba(196, 92, 80, 0.16);
    transform: translateY(-1px);
}

/* ---- 键盘焦点可见性 ---- */
body.page-friends .friends-btn:focus-visible,
body.page-friends .friends-chip__del:focus-visible {
    outline: 2px solid rgba(213, 144, 67, 0.65);
    outline-offset: 2px;
}

/* ---- 底部操作 ---- */
body.page-friends .friends-foot {
    display: flex;
    justify-content: center;
    margin-top: 16px;
}

@media (max-width: 720px) {
    body.page-friends .friends-hero {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
    }
    body.page-friends .friends-hero__stats {
        width: 100%;
        flex-wrap: wrap;
    }
    body.page-friends .friends-hero__stat {
        align-items: flex-start;
    }
}

@media (max-width: 560px) {
    body.page-friends .friends-section {
        border-radius: 14px;
    }
    body.page-friends .friends-grid {
        grid-template-columns: 1fr;
    }
    body.page-friends .friends-card {
        flex-wrap: wrap;
    }
    body.page-friends .friends-card__actions {
        flex-direction: row;
        width: 100%;
    }
    body.page-friends .friends-card__actions .friends-btn {
        flex: 1 1 auto;
        justify-content: center;
    }
}

/* ==========================================================================
 * 用户名录页（users.php）—— body.page-users
 * 渐变 hero banner + 搜索/筛选工具栏 + 字母导航 + 卡片化用户网格。
 * 复用站点暖色调（与签到 / 短讯 / 好友新版一致）：
 *   - 文字主色 #5f4e3e / #3f3022，描边 rgba(226,214,196,*)
 *   - 强调色橙金渐变 rgba(244,191,138)→rgba(218,158,82)
 * 全部限定在 body.page-users 下，避免污染其它页面。
 * ========================================================================== */
body.page-users #outer > table.main {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-users .users-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}

/* ---- hero ---- */
body.page-users .users-hero {
    position: relative;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 0 0 18px;
    padding: 18px 22px;
    border: 1px solid rgba(0, 0, 0, 0.07);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 10px 26px rgba(49, 66, 96, 0.05),
                0 2px 6px rgba(49, 66, 96, 0.03);
    overflow: hidden;
}
body.page-users .users-hero::before {
    content: "";
    position: absolute;
    top: -70px;
    right: -40px;
    width: 200px;
    height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle at center, rgba(244, 191, 138, 0.14), rgba(244, 191, 138, 0) 70%);
    pointer-events: none;
}
body.page-users .users-hero__badge {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 52px;
    width: 52px;
    height: 52px;
    border-radius: 15px;
    background: linear-gradient(135deg, rgba(244, 191, 138, 0.98), rgba(218, 158, 82, 0.92));
    color: #fff;
    font-size: 23px;
    box-shadow: 0 6px 14px rgba(199, 131, 64, 0.26);
}
body.page-users .users-hero__text {
    position: relative;
    z-index: 1;
    min-width: 0;
}
body.page-users .users-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #2f2f33;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: 0.03em;
}
body.page-users .users-hero__sub {
    margin: 6px 0 0;
    color: #707070;
    font-size: 13px;
    line-height: 1.5;
}
body.page-users .users-hero__sub strong {
    color: #b06a1d;
    font-weight: 800;
}

/* ---- 搜索 / 筛选工具栏 ---- */
body.page-users .users-search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
}
body.page-users .users-search__field {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 220px;
    min-width: 180px;
}
body.page-users .users-search__field i {
    position: absolute;
    left: 12px;
    color: #c7a98a;
    font-size: 13px;
    pointer-events: none;
}
body.page-users .users-search__input {
    box-sizing: border-box;
    width: 100%;
    height: 34px;
    padding: 6px 12px 6px 32px;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
}
body.page-users .users-search__input:focus {
    outline: none;
    border-color: rgba(214, 150, 86, 0.75);
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.2);
}
/* 借用 torrents 高级搜索按钮样式，压到 34px 与同排控件对齐 */
body.page-users .users-search .torrent-search-box__submit.btn {
    height: 34px;
    min-height: 34px;
    min-width: 96px;
    padding: 0 16px;
}

/* dropdown 在本页做成"表单控件"外观：实线边 + 34px 高，与搜索框 / 按钮对齐 */
body.page-users .users-dd {
    vertical-align: middle;
}
body.page-users .users-dd .ui-dropdown-trigger {
    box-sizing: border-box;
    height: 34px;
    min-height: 34px;
    padding: 0 12px;
    border: 1px solid rgba(226, 214, 196, 0.9);
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 500;
}
body.page-users .users-dd:hover .ui-dropdown-trigger,
body.page-users .users-dd:focus-within .ui-dropdown-trigger,
body.page-users .users-dd .ui-dropdown-trigger:hover,
body.page-users .users-dd .ui-dropdown-trigger:focus {
    transform: none;
    border-color: rgba(214, 150, 86, 0.75);
    background: #fffaf2;
    color: #5f4e3e;
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.18);
}

/* ---- 字母导航 ---- */
body.page-users .users-letters {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 4px;
    margin: 0 0 16px;
    padding: 8px 10px;
    border-radius: 16px;
    background: linear-gradient(180deg, #fffdf9 0%, #fff7ec 100%);
    box-shadow: inset 0 0 0 1px rgba(232, 222, 207, 0.85);
}
body.page-users .users-letters__label {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 0 12px 0 6px;
    margin-right: 4px;
    color: #b3a48f;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    white-space: nowrap;
}
body.page-users .users-letters__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    flex: 1 1 auto;
}
body.page-users .users-letter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 5px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: #8a7050 !important;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    transition: background-color 0.16s ease, color 0.16s ease, transform 0.14s ease, box-shadow 0.16s ease;
}
body.page-users .users-letter--all {
    padding: 0 14px;
    font-weight: 700;
    letter-spacing: 0.5px;
}
body.page-users a.users-letter:hover {
    background: #fff5ea;
    color: #b9722e !important;
    box-shadow: 0 2px 8px rgba(199, 131, 64, 0.18), inset 0 0 0 1px rgba(232, 178, 106, 0.55);
    transform: translateY(-1px);
}
body.page-users a.users-letter:active {
    transform: translateY(0);
}
body.page-users .users-letter.is-active {
    color: #fff !important;
    background: linear-gradient(135deg, #f4bf8a, #d99e52);
    box-shadow: 0 4px 12px rgba(199, 131, 64, 0.32);
    transform: translateY(-1px);
}

/* ---- 用户卡片网格 ---- */
body.page-users .users-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
    gap: 14px;
}
body.page-users .users-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 15px 16px;
    border: 1px solid rgba(232, 222, 207, 0.82);
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #fffaf2 100%);
    box-shadow: 0 1px 2px rgba(90, 66, 36, 0.04), 0 8px 22px rgba(90, 66, 36, 0.05);
    cursor: pointer;
    transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}
body.page-users .users-card:hover {
    border-color: rgba(213, 144, 67, 0.4);
    transform: translateY(-3px);
    box-shadow: 0 2px 4px rgba(90, 66, 36, 0.05), 0 16px 32px rgba(199, 131, 64, 0.14);
}
body.page-users .users-card:focus-within {
    border-color: rgba(213, 144, 67, 0.5);
    box-shadow: 0 0 0 3px rgba(244, 191, 138, 0.25);
}
body.page-users .users-card__avatar {
    flex: 0 0 54px;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(232, 178, 106, 0.45), 0 8px 16px rgba(90, 66, 36, 0.12);
    transition: box-shadow 0.2s ease;
}
body.page-users .users-card:hover .users-card__avatar {
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px rgba(213, 144, 67, 0.7), 0 10px 20px rgba(199, 131, 64, 0.22);
}
body.page-users .users-card__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-users .users-card__main {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-users .users-card__top {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
body.page-users .users-card__name {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
}
body.page-users .users-card__class {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 9px;
    border-radius: 999px;
    background: rgba(243, 233, 219, 0.7);
    color: #8a7050;
    font-size: 11.5px;
    font-weight: 600;
}
body.page-users .users-card__class i {
    color: #c79a6a;
    font-size: 10px;
}
body.page-users .users-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 14px;
    margin-top: 8px;
    color: #9a8872;
    font-size: 12px;
}
body.page-users .users-card__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
body.page-users .users-card__meta-item i {
    color: #c7a98a;
    font-size: 11px;
}
body.page-users .users-card__meta-label {
    color: #b3a48f;
    font-weight: 600;
    margin-right: 1px;
}
body.page-users .users-card__meta-label::after {
    content: "·";
    margin-left: 4px;
    color: #d8c4a8;
}
body.page-users .users-card__flag {
    flex-basis: 100%;
}
body.page-users .users-card__flag img {
    height: 11px;
    width: auto;
    vertical-align: middle;
    border-radius: 2px;
}
body.page-users .users-card__never {
    color: #b3a48f;
    font-style: italic;
}

/* ---- 空状态 ---- */
body.page-users .users-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 44px 20px;
    border: 1px dashed rgba(0, 0, 0, 0.12);
    border-radius: 16px;
    background: #fafafa;
    color: #9a9a9a;
    font-size: 13px;
}
body.page-users .users-empty i {
    font-size: 30px;
    color: rgba(0, 0, 0, 0.18);
}

@media (max-width: 560px) {
    body.page-users .users-grid {
        grid-template-columns: 1fr;
    }
    body.page-users .users-card {
        flex-wrap: wrap;
    }
}

/* ==========================================================================
 * 管理面板页（staffpanel.php）—— 复用站点暖色卡片设计语言，
 * 按权限分级（sysop / admin / mod）聚合管理工具入口。
 * ========================================================================== */
body.page-staffpanel #outer > table.main {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-staffpanel h1[align="center"] {
    display: none; /* 隐藏祖传的 <h1 align=center>Administration</h1> */
}
body.page-staffpanel .sp-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-staffpanel .sp-page * {
    box-sizing: border-box;
}

/* ---- hero ---- */
body.page-staffpanel .sp-hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
}
body.page-staffpanel .sp-hero__badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-staffpanel .sp-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-staffpanel .sp-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
}
body.page-staffpanel .sp-hero__sub {
    margin: 6px 0 0;
    color: #9b8874;
    font-size: 13px;
}
body.page-staffpanel .sp-hero__stats {
    flex: 0 0 auto;
    display: flex;
    align-items: stretch;
    gap: 10px;
}
body.page-staffpanel .sp-hero__stat {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 96px;
    padding: 10px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-staffpanel .sp-hero__stat-label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
    white-space: nowrap;
}
body.page-staffpanel .sp-hero__stat-label i {
    color: #d59043;
}
body.page-staffpanel .sp-hero__stat-value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}
body.page-staffpanel .sp-hero__stat-value--text {
    font-size: 16px;
}

/* ---- 分级区块 ---- */
body.page-staffpanel .sp-section {
    margin-top: 16px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
body.page-staffpanel .sp-section__head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.6);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
}
body.page-staffpanel .sp-section__icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 17px;
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
}
body.page-staffpanel .sp-section__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-staffpanel .sp-section__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
}
body.page-staffpanel .sp-section__sub {
    margin: 3px 0 0;
    color: #9b8874;
    font-size: 12px;
}
body.page-staffpanel .sp-section__count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 22px;
    padding: 0 8px;
    border-radius: 999px;
    background: #f3e6d3;
    color: #a05f1d;
    font-size: 12px;
    font-weight: 700;
}

/* 分级配色：仅微调区块图标与卡片图标的色调，整体仍为统一暖色卡片。 */
body.page-staffpanel .sp-section--sysop .sp-section__icon {
    background: linear-gradient(135deg, #e07b6a, #cf5a47);
    box-shadow: 0 6px 14px rgba(207, 90, 71, 0.28);
}
body.page-staffpanel .sp-section--admin .sp-section__icon {
    background: linear-gradient(135deg, #e0a24f, #cf8a36);
    box-shadow: 0 6px 14px rgba(207, 138, 54, 0.28);
}
body.page-staffpanel .sp-section--mod .sp-section__icon {
    background: linear-gradient(135deg, #6fb18a, #4f9b73);
    box-shadow: 0 6px 14px rgba(79, 155, 115, 0.26);
}

/* ---- 工具卡片网格 ---- */
body.page-staffpanel .sp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(248px, 1fr));
    gap: 14px;
    padding: 18px;
}
body.page-staffpanel .sp-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 14px 15px;
    border: 1px solid rgba(232, 222, 207, 0.82);
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fffaf2 100%);
    box-shadow: 0 1px 2px rgba(90, 66, 36, 0.04), 0 8px 18px rgba(90, 66, 36, 0.04);
    text-decoration: none;
    overflow: hidden;
    transition: transform 0.22s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.22s ease, border-color 0.22s ease;
}
body.page-staffpanel .sp-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, #f3b86f, #d59043);
    opacity: 0;
    transition: opacity 0.22s ease;
}
body.page-staffpanel .sp-card:hover {
    border-color: rgba(213, 144, 67, 0.42);
    box-shadow: 0 2px 4px rgba(90, 66, 36, 0.05), 0 16px 30px rgba(199, 131, 64, 0.14);
    transform: translateY(-3px);
}
body.page-staffpanel .sp-card:hover::before {
    opacity: 1;
}
body.page-staffpanel .sp-card__icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    background: rgba(243, 233, 219, 0.6);
    color: #b9722e;
    font-size: 16px;
    transition: background 0.22s ease, color 0.22s ease;
}
body.page-staffpanel .sp-card:hover .sp-card__icon {
    background: linear-gradient(135deg, #fff4e4, #ffe7ca);
    color: #a05f1d;
}
body.page-staffpanel .sp-section--sysop .sp-card__icon {
    color: #cf5a47;
}
body.page-staffpanel .sp-section--mod .sp-card__icon {
    color: #4f9b73;
}
body.page-staffpanel .sp-card__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
body.page-staffpanel .sp-card__name {
    font-size: 14px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.page-staffpanel .sp-card__info {
    font-size: 12px;
    color: #9a8872;
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.page-staffpanel .sp-card__arrow {
    flex: 0 0 auto;
    color: #d6c3a9;
    font-size: 12px;
    transition: transform 0.22s ease, color 0.22s ease;
}
body.page-staffpanel .sp-card:hover .sp-card__arrow {
    color: #d59043;
    transform: translateX(3px);
}

/* ---- 空状态 ---- */
body.page-staffpanel .sp-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px 20px;
    color: #b3a48f;
    font-size: 13px;
}
body.page-staffpanel .sp-empty i {
    font-size: 30px;
    color: #e0d3bd;
}

@media (max-width: 768px) {
    body.page-staffpanel .sp-hero {
        flex-wrap: wrap;
    }
    body.page-staffpanel .sp-hero__stats {
        width: 100%;
    }
    body.page-staffpanel .sp-hero__stat {
        flex: 1 1 0;
        align-items: flex-start;
    }
    body.page-staffpanel .sp-grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
 * 站点设定页（settings.php）—— SysOp 配置中心。
 * 仅重塑展示层：菜单做成卡片网格，子页表单（仍是 rowhead/rowfollow 行）
 * 用卡片容器 + 现代化输入控件呈现，复用站点暖色设计语言。
 * 全部限定在 body.page-settings 下，避免污染其它页面的 .rowhead/.rowfollow。
 * ========================================================================== */
body.page-settings #outer > table.main {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
body.page-settings #outer td.embedded {
    color: #5f4e3e;
}

/* ---- hero ---- */
body.page-settings .settings-hero {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    max-width: 1180px;
    margin: 0 auto;
    padding: 20px 24px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    text-align: left;
}
body.page-settings .settings-hero__badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 15px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 25px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-settings .settings-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-settings .settings-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    text-align: left;
}
body.page-settings .settings-hero__title a {
    color: #2d2419;
    text-decoration: none;
}
body.page-settings .settings-hero__sub {
    margin: 6px 0 0;
    color: #9b8874;
    font-size: 13px;
}
body.page-settings .settings-back {
    position: absolute;
    top: 16px;
    right: 18px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 13px;
    border: 1px solid rgba(232, 222, 207, 0.95);
    border-radius: 999px;
    background: #fff;
    color: #b9722e !important;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none;
    transition: background 0.16s ease, border-color 0.16s ease, transform 0.16s ease;
}
body.page-settings .settings-back:hover {
    background: linear-gradient(135deg, #fff4e4, #ffe7ca);
    border-color: rgba(213, 144, 67, 0.7);
    transform: translateY(-1px);
}

/* ---- 配置写入提示条 ---- */
body.page-settings .settings-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    max-width: 1180px;
    margin: 14px auto 0;
    padding: 12px 16px;
    border: 1px solid rgba(232, 196, 150, 0.7);
    border-radius: 12px;
    background: linear-gradient(135deg, #fff7ec, #fdedd6);
    color: #9a6a23;
    font-size: 13px;
    line-height: 1.6;
    text-align: left;
}
body.page-settings .settings-notice i {
    margin-top: 2px;
    color: #d59043;
    font-size: 15px;
}

/* ---- 菜单卡片网格 ---- */
body.page-settings .settings-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 14px;
    max-width: 1180px;
    margin: 16px auto 0;
}
body.page-settings .settings-card-form {
    margin: 0;
    padding: 0;
    display: block;
}
body.page-settings .settings-card {
    position: relative;
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 16px 16px;
    border: 1px solid rgba(232, 222, 207, 0.82);
    border-radius: 14px;
    background: linear-gradient(180deg, #ffffff 0%, #fffaf2 100%);
    box-shadow: 0 1px 2px rgba(90, 66, 36, 0.04), 0 8px 18px rgba(90, 66, 36, 0.04);
    cursor: pointer;
    text-align: left;
    font: inherit;
    transition: transform 0.22s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.22s ease, border-color 0.22s ease;
}
body.page-settings .settings-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, #f3b86f, #d59043);
    opacity: 0;
    transition: opacity 0.22s ease;
}
body.page-settings .settings-card:hover {
    border-color: rgba(213, 144, 67, 0.42);
    box-shadow: 0 2px 4px rgba(90, 66, 36, 0.05), 0 16px 30px rgba(199, 131, 64, 0.14);
    transform: translateY(-3px);
}
body.page-settings .settings-card:hover::before {
    opacity: 1;
}
body.page-settings .settings-card__icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: rgba(243, 233, 219, 0.6);
    color: #b9722e;
    font-size: 18px;
    transition: background 0.22s ease, color 0.22s ease;
}
body.page-settings .settings-card:hover .settings-card__icon {
    background: linear-gradient(135deg, #fff4e4, #ffe7ca);
    color: #a05f1d;
}
body.page-settings .settings-card__body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
body.page-settings .settings-card__title {
    font-size: 15px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.3;
}
body.page-settings .settings-card__desc {
    font-size: 12px;
    color: #9a8872;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
body.page-settings .settings-card__arrow {
    flex: 0 0 auto;
    color: #d6c3a9;
    font-size: 12px;
    transition: transform 0.22s ease, color 0.22s ease;
}
body.page-settings .settings-card:hover .settings-card__arrow {
    color: #d59043;
    transform: translateX(3px);
}

/* ---- 子页表单（沿用 rowhead/rowfollow 行结构，套上卡片外观）---- */
body.page-settings table.settings-form {
    width: 100%;
    max-width: 1180px;
    margin: 16px auto 0;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}
body.page-settings table.settings-form td {
    padding: 14px 18px;
    border-top: 1px solid rgba(232, 222, 207, 0.55);
    vertical-align: top;
    line-height: 1.6;
}
body.page-settings table.settings-form tr:first-child td {
    border-top: 0;
}
body.page-settings table.settings-form td.rowhead {
    width: 240px;
    color: #5f4e3e;
    font-weight: 700;
    font-size: 13.5px;
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
    border-right: 1px solid rgba(232, 222, 207, 0.55);
    white-space: normal;
}
body.page-settings table.settings-form td.rowfollow {
    color: #6b5947;
    font-size: 13px;
    background: #fff;
}
/* 段落分隔行：<td colspan="2" align="center"><b>小节标题</b> */
body.page-settings table.settings-form td[colspan="2"] {
    text-align: left;
    background: linear-gradient(135deg, #fbe6cf, #f7dcb8);
    color: #8a5a1c;
    border-top: 1px solid rgba(213, 144, 67, 0.25);
}
body.page-settings table.settings-form td[colspan="2"] b {
    font-size: 14px;
    letter-spacing: 0.3px;
}
body.page-settings table.settings-form ul {
    margin: 6px 0 0;
    padding-left: 20px;
}
body.page-settings table.settings-form li {
    margin: 4px 0;
}

/* ---- 表单控件现代化（保留行内 width，仅美化边框/内距/圆角）---- */
/* 文本/数字类输入用 content-box：行内 width 表示内容可视宽度，padding 不再挤占，
   避免窄输入框（如 width:30px/50px）加内距后内容被裁切显示不全 */
body.page-settings table.settings-form input[type="text"],
body.page-settings table.settings-form input[type="password"],
body.page-settings table.settings-form input[type="number"],
body.page-settings table.settings-form input[type="email"],
body.page-settings table.settings-form input[type="datetime-local"] {
    box-sizing: content-box;
    min-width: 24px;
    max-width: 100%;
    margin: 0 4px;
    padding: 7px 10px;
    border: 1px solid #e1d6c4;
    border-radius: 9px;
    background: #fffdfa;
    color: #4a3c2d;
    font-size: 13px;
    line-height: 1.4;
    vertical-align: middle;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}
body.page-settings table.settings-form textarea,
body.page-settings table.settings-form select {
    box-sizing: border-box;
    max-width: 100%;
    padding: 7px 11px;
    border: 1px solid #e1d6c4;
    border-radius: 9px;
    background: #fffdfa;
    color: #4a3c2d;
    font-size: 13px;
    line-height: 1.4;
    vertical-align: middle;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}
body.page-settings table.settings-form textarea {
    min-height: 90px;
    resize: vertical;
}
body.page-settings table.settings-form input[type="text"]:focus,
body.page-settings table.settings-form input[type="password"]:focus,
body.page-settings table.settings-form input[type="number"]:focus,
body.page-settings table.settings-form input[type="email"]:focus,
body.page-settings table.settings-form input[type="datetime-local"]:focus,
body.page-settings table.settings-form textarea:focus,
body.page-settings table.settings-form select:focus {
    outline: none;
    border-color: #d59043;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.16);
}
/* 单选 / 复选：增大点击区与间距，标签可点 */
/* 自定义多选框：去掉原生黑色对勾，改为焦糖底 + 白色对勾 */
body.page-settings table.settings-form input[type="checkbox"] {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin: 0 4px 0 0;
    vertical-align: -3px;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid #d8c4a8;
    border-radius: 4px;
    background: #fff;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 11px 11px;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-settings table.settings-form input[type="checkbox"]:hover {
    border-color: #d59043;
}
body.page-settings table.settings-form input[type="checkbox"]:checked {
    border-color: #d59043;
    background-color: #d59043;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-6.5'/%3E%3C/svg%3E");
}
body.page-settings table.settings-form input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.25);
}
/* 自定义单选框：去掉原生选中时的黑色外圈，改为焦糖描边 + 焦糖圆点 */
body.page-settings table.settings-form input[type="radio"] {
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    margin: 0 4px 0 0;
    vertical-align: -3px;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid #d8c4a8;
    border-radius: 50%;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-settings table.settings-form input[type="radio"]:hover {
    border-color: #d59043;
}
body.page-settings table.settings-form input[type="radio"]:checked {
    border-color: #d59043;
    background: radial-gradient(circle, #d59043 0 4px, #fff 5px 100%);
}
body.page-settings table.settings-form input[type="radio"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.25);
}
body.page-settings table.settings-form label {
    margin-right: 14px;
    cursor: pointer;
}

/* ---- 保存按钮 ---- */
body.page-settings table.settings-form input[type="submit"] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 22px;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
    transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}
body.page-settings table.settings-form input[type="submit"]:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 9px 20px rgba(213, 144, 67, 0.32);
}

/* 站点统一下拉（common.js 把原生 select 增强为 .ui-dropdown）页面级修饰 */
body.page-settings table.settings-form .ui-dropdown {
    min-width: 0;
    background: #fffdfa;
    border: 1px solid #e1d6c4;
    border-radius: 9px;
    font-size: 13px;
}
body.page-settings table.settings-form .ui-dropdown.is-open,
body.page-settings table.settings-form .ui-dropdown:focus-within {
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.16);
}

/* ---- 子表格（连续签到等内嵌规则表）：套新版焦糖外观 ---- */
body.page-settings table.settings-form table.settings-subtable {
    border-collapse: separate;
    border-spacing: 0;
    margin: 4px 0 2px;
    border: 1px solid #ecdfca;
    border-radius: 12px;
    background: #fffdfa;
    overflow: hidden;
}
/* 子表格单元格：重置从主表单继承来的大内距/边框，改用紧凑分隔线 */
body.page-settings table.settings-form table.settings-subtable td {
    padding: 9px 14px;
    border-top: 1px solid rgba(236, 223, 202, 0.7);
    border-right: 0;
    background: transparent;
    vertical-align: middle;
    line-height: 1.5;
}
body.page-settings table.settings-form table.settings-subtable tr:first-child td {
    border-top: 0;
}
/* 表头：焦糖渐变 */
body.page-settings table.settings-form table.settings-subtable td.colhead {
    padding: 10px 14px;
    background: linear-gradient(135deg, #fbe6cf, #f7dcb8);
    color: #8a5a1c;
    font-weight: 700;
    font-size: 13px;
    border-top: 0;
    white-space: nowrap;
}
/* 提示行（请从小到大添加规则） */
body.page-settings table.settings-form table.settings-subtable td[colspan="3"] {
    background: #fcf6ec;
    color: #9b7a4f;
    font-size: 12px;
    text-align: left;
}
/* 操作链接：添加 / 删除 → 焦糖胶囊按钮 */
body.page-settings table.settings-form table.settings-subtable td a {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 8px;
    background: #f4e8d5;
    color: #8a5a1c;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
body.page-settings table.settings-form table.settings-subtable td a:hover {
    background: #d59043;
    color: #fff;
}

@media (max-width: 768px) {
    body.page-settings .settings-hero {
        flex-wrap: wrap;
        padding-top: 52px;
    }
    body.page-settings .settings-back {
        top: 14px;
        right: 14px;
    }
    body.page-settings .settings-grid {
        grid-template-columns: 1fr;
    }
    body.page-settings table.settings-form,
    body.page-settings table.settings-form tbody,
    body.page-settings table.settings-form tr,
    body.page-settings table.settings-form td {
        display: block;
        width: 100% !important;
    }
    body.page-settings table.settings-form td.rowhead {
        border-right: 0;
        border-bottom: 1px solid rgba(232, 222, 207, 0.55);
    }
    body.page-settings table.settings-form td {
        border-top: 0;
    }
    body.page-settings table.settings-form tr {
        border-top: 1px solid rgba(232, 222, 207, 0.55);
    }
}

/* ============================================================
 * [合集列表 collection.php] 新版卡片化页面
 *   渐变 hero + 标签切换 + 筛选卡（含 ui-dropdown）+ 卡片网格
 *   暖色调与 mybonus / friends / settings 等新版页面一致
 * ============================================================ */
/* 中和 begin_main_frame() 产生的固定宽度 table.main 包裹层 */
body.page-collection #outer > table.main:has(.collection-page) {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-collection #outer > table.main:has(.collection-page) > tbody > tr > td.embedded {
    padding-right: var(--site-content-inline-gap, 26px) !important;
    padding-left: var(--site-content-inline-gap, 26px) !important;
}
body.page-collection .collection-page {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    text-align: left;
    color: #5f4e3e;
}
body.page-collection .collection-page * {
    box-sizing: border-box;
}

/* ---------- Hero ---------- */
body.page-collection .collection-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 26px;
    margin: 14px 0 18px;
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    border: 1px solid rgba(232, 222, 207, 0.7);
}
body.page-collection .collection-hero__badge {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-collection .collection-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-collection .collection-hero__title {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.2;
}
body.page-collection .collection-hero__sub {
    margin: 6px 0 0;
    font-size: 13px;
    color: #9b8874;
    line-height: 1.5;
}
body.page-collection .collection-hero__stats {
    flex: 0 0 auto;
    display: flex;
    gap: 10px;
}
body.page-collection .collection-hero__stat {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 96px;
    padding: 10px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-collection .collection-hero__stat-label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
    white-space: nowrap;
}
body.page-collection .collection-hero__stat-label i {
    color: #d59043;
}
body.page-collection .collection-hero__stat-value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}

/* ---------- Tabs ---------- */
body.page-collection .collection-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}
body.page-collection .collection-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    border-radius: 11px;
    background: #fff;
    border: 1px solid #e8decf;
    color: #6b5947;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
body.page-collection .collection-tab i {
    color: #c08a4e;
}
body.page-collection .collection-tab:hover {
    border-color: #d59043;
    color: #6f3a00;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.14);
}
body.page-collection .collection-tab.is-active {
    background: #fcf2e4;
    border-color: #ecd3b0;
    color: #b9722e;
    box-shadow: inset 0 0 0 1px rgba(213, 144, 67, 0.12);
}
body.page-collection .collection-tab.is-active i {
    color: #d59043;
}
body.page-collection .collection-tab--create {
    margin-left: auto;
}

/* ---------- Filter card ---------- */
body.page-collection .collection-filter {
    background: #fff;
    border: 1px solid #ecdfca;
    border-radius: 16px;
    padding: 14px 22px;
    margin-bottom: 18px;
    box-shadow: 0 6px 18px rgba(120, 90, 50, 0.06);
}
body.page-collection .collection-filter__row {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 10px 0;
}
body.page-collection .collection-filter__row + .collection-filter__row {
    border-top: 1px solid rgba(236, 223, 202, 0.6);
}
body.page-collection .collection-filter__label {
    flex: 0 0 64px;
    padding-top: 8px;
    font-size: 13px;
    font-weight: 700;
    color: #5f4e3e;
}
body.page-collection .collection-filter__input {
    flex: 1 1 auto;
    max-width: 520px;
    padding: 9px 13px;
    border: 1px solid #e1d6c4;
    border-radius: 10px;
    background: #fffdfa;
    color: #4a3c2d;
    font-size: 13px;
    transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
body.page-collection .collection-filter__input:focus {
    outline: none;
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.16);
}
/* 分类多选 → 焦糖胶囊 */
body.page-collection .collection-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 2px;
}
body.page-collection .collection-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 999px;
    background: #f7efe2;
    border: 1px solid #e8decf;
    color: #7a6248;
    font-size: 13px;
    cursor: pointer;
    user-select: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
body.page-collection .collection-chip input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    margin: 0;
}
body.page-collection .collection-chip:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-collection .collection-chip:has(input:checked) {
    background: linear-gradient(135deg, #e89b50, #d59043);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 4px 10px rgba(213, 144, 67, 0.22);
}
/* 排序下拉（ui-dropdown 页面级修饰） */
body.page-collection .collection-filter__sort {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
body.page-collection .collection-filter .ui-dropdown {
    min-width: 0;
    background: #fffdfa;
    border: 1px solid #e1d6c4;
    border-radius: 10px;
    font-size: 13px;
}
body.page-collection .collection-filter .ui-dropdown:focus-within {
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.16);
}
body.page-collection .collection-filter__actions {
    display: flex;
    gap: 10px;
    padding-top: 8px;
}
body.page-collection .collection-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 20px;
    border-radius: 11px;
    border: 0;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
body.page-collection .collection-btn--primary {
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
}
body.page-collection .collection-btn--primary:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 9px 20px rgba(213, 144, 67, 0.32);
}
body.page-collection .collection-btn--ghost {
    background: #fff;
    border: 1px solid #e8decf;
    color: #6b5947;
}
body.page-collection .collection-btn--ghost:hover {
    border-color: #d59043;
    color: #6f3a00;
}

/* ---------- 当前筛选提示条 ---------- */
body.page-collection .collection-active-filter {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    margin-bottom: 14px;
    border-radius: 12px;
    background: #fbf1e2;
    border: 1px solid #efddc3;
    color: #8a6a44;
    font-size: 13px;
}
body.page-collection .collection-active-filter__icon {
    flex: 0 0 auto;
    color: #d59043;
}
body.page-collection .collection-active-filter__text {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.5;
}
body.page-collection .collection-active-filter__text b {
    color: #6f3a00;
}
body.page-collection .collection-active-filter__clear {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #e8decf;
    color: #b4543a;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
body.page-collection .collection-active-filter__clear:hover {
    background: #c0492f;
    border-color: transparent;
    color: #fff;
}

/* ---------- 结果分组面板 ---------- */
body.page-collection .collection-section {
    margin-bottom: 16px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
}

/* ---------- Grid + Card ---------- */
body.page-collection .collection-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    align-items: start;
    gap: 16px;
    padding: 18px;
}
body.page-collection .collection-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #fff;
    border: 1px solid #ebe8e3;
    border-radius: 18px;
    padding: 16px 18px;
    box-shadow: 0 1px 2px rgba(40, 42, 48, 0.04), 0 10px 24px rgba(40, 42, 48, 0.06);
    transition: transform 0.24s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.24s ease, border-color 0.24s ease;
}
body.page-collection .collection-card:hover {
    transform: translateY(-3px);
    border-color: #ddd8d0;
    box-shadow: 0 2px 4px rgba(40, 42, 48, 0.05), 0 16px 30px rgba(40, 42, 48, 0.1);
}
body.page-collection .collection-card__top {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
body.page-collection .collection-card__medal {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: var(--cat-bg, #f6ead8);
    color: var(--cat-fg, #8a5a1c);
    font-size: 20px;
}
body.page-collection .collection-card__headline {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-collection .collection-card__cat {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    color: #9b8874;
    letter-spacing: 0.2px;
}
/* 各分类色（驱动奖章底色 + 分类标签 + 数量 pill），暖色系点缀冷色作色标 */
body.page-collection .collection-card--10  { --cat-bg: #f6ead8; --cat-fg: #8a5a1c; }
body.page-collection .collection-card--30  { --cat-bg: #e3eef7; --cat-fg: #3d6a93; }
body.page-collection .collection-card--40  { --cat-bg: #ece4f5; --cat-fg: #7a559b; }
body.page-collection .collection-card--50  { --cat-bg: #fbf0cf; --cat-fg: #9a7415; }
body.page-collection .collection-card--60  { --cat-bg: #def0ea; --cat-fg: #2f7a63; }
body.page-collection .collection-card--70  { --cat-bg: #f7e2dd; --cat-fg: #b4543a; }
body.page-collection .collection-card--100 { --cat-bg: #e6e9ef; --cat-fg: #5a6478; }
body.page-collection .collection-card__count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    background: #f2ede4;
    color: #97866e;
    font-size: 12.5px;
    font-weight: 700;
}
body.page-collection .collection-card__name {
    margin: 3px 0 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
body.page-collection .collection-card__name a {
    color: #4a3c2d;
    text-decoration: none;
}
body.page-collection .collection-card__name a:hover {
    color: #d59043;
}
body.page-collection .collection-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin-top: auto;
    font-size: 12.5px;
    color: #9b7a4f;
}
body.page-collection .collection-card__meta i {
    margin-right: 5px;
    color: #c2a378;
}
body.page-collection .collection-card__meta a {
    color: inherit;
}
body.page-collection .collection-card__actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid rgba(236, 223, 202, 0.6);
}
body.page-collection .collection-card__act {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 9px;
    border-radius: 8px;
    background: transparent;
    color: #9b8874;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
body.page-collection .collection-card__act:hover {
    background: #f3eee6;
    color: #6b5947;
}
body.page-collection .collection-card__act--danger {
    background: transparent;
    color: #c08571;
}
body.page-collection .collection-card__act--danger:hover {
    background: #f9e7e1;
    color: #b4543a;
}

/* ---------- Empty ---------- */
body.page-collection .collection-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 56px 20px;
    color: #b29a78;
}
body.page-collection .collection-empty i {
    font-size: 42px;
    color: #e0c49a;
}
body.page-collection .collection-empty span {
    font-size: 15px;
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    body.page-collection .collection-hero {
        flex-wrap: wrap;
    }
    body.page-collection .collection-hero__stats {
        width: 100%;
    }
    body.page-collection .collection-tab--create {
        margin-left: 0;
    }
    body.page-collection .collection-filter__row {
        flex-direction: column;
        gap: 8px;
    }
    body.page-collection .collection-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
 * [合集详情 collection_view.php] 新版页面
 *   渐变 hero + 影视条目卡片列表 + 描述/评论区
 * ============================================================ */
body.page-collection_view #outer > table.main:has(.cv-page) {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-collection_view #outer > table.main:has(.cv-page) > tbody > tr > td.embedded {
    padding-right: var(--site-content-inline-gap, 26px) !important;
    padding-left: var(--site-content-inline-gap, 26px) !important;
}
body.page-collection_view .cv-page {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    text-align: left;
    color: #5f4e3e;
}
body.page-collection_view .cv-page * {
    box-sizing: border-box;
}

/* ---------- Hero ---------- */
body.page-collection_view .cv-hero {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 26px;
    margin: 14px 0 18px;
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    border: 1px solid rgba(232, 222, 207, 0.7);
}
body.page-collection_view .cv-back {
    position: absolute;
    top: 14px;
    right: 16px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 13px;
    border-radius: 9px;
    background: #fff;
    border: 1px solid #e8decf;
    color: #8a6a44;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.15s ease, color 0.15s ease;
}
body.page-collection_view .cv-back:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-collection_view .cv-hero__badge {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-collection_view .cv-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-collection_view .cv-hero__title {
    margin: 0;
    padding-right: 96px;
    font-size: 22px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.25;
}
body.page-collection_view .cv-hero__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
    margin-top: 8px;
    font-size: 13px;
    color: #9b8874;
}
body.page-collection_view .cv-hero__meta i {
    margin-right: 5px;
    color: #c2a378;
}
body.page-collection_view .cv-hero__meta a {
    color: inherit;
}
body.page-collection_view .cv-hero__actions {
    flex: 0 0 auto;
    display: flex;
    gap: 8px;
    align-self: flex-end;
}
body.page-collection_view .cv-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 10px;
    background: #fff;
    border: 1px solid #e8decf;
    color: #8a6a44;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
body.page-collection_view .cv-btn:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-collection_view .cv-btn--danger {
    color: #c08571;
}
body.page-collection_view .cv-btn--danger:hover {
    border-color: #d98a72;
    color: #b4543a;
    background: #fbeee9;
}

/* ---------- 通用区块标题 ---------- */
body.page-collection_view .cv-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    padding: 0;
    background: none;
    font-size: 16px;
    font-weight: 700;
    color: #2d2419;
}
body.page-collection_view .cv-section-title i {
    color: #d59043;
    font-size: 15px;
}
body.page-collection_view .cv-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 8px;
    border-radius: 999px;
    background: #f2ede4;
    color: #97866e;
    font-size: 12px;
    font-weight: 700;
}

/* ---------- 描述 ---------- */
body.page-collection_view .cv-desc {
    margin-bottom: 18px;
    padding: 18px 20px;
    border: 1px solid #ebe8e3;
    border-radius: 14px;
    background: #fff;
}
body.page-collection_view .cv-desc__body {
    color: #6b5947;
    font-size: 14px;
    line-height: 1.7;
    word-break: break-word;
}

/* ---------- 影视条目列表 ---------- */
body.page-collection_view .cv-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(440px, 1fr));
    align-items: start;
    gap: 16px;
    margin-bottom: 22px;
}
body.page-collection_view .cv-item {
    position: relative;
    display: flex;
    gap: 14px;
    padding: 16px;
    border: 1px solid #ebe8e3;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(40, 42, 48, 0.04), 0 10px 24px rgba(40, 42, 48, 0.05);
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
body.page-collection_view .cv-item:hover {
    transform: translateY(-2px);
    border-color: #ddd8d0;
    box-shadow: 0 2px 4px rgba(40, 42, 48, 0.05), 0 16px 30px rgba(40, 42, 48, 0.09);
}
body.page-collection_view .cv-item__num {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    background: rgba(45, 36, 25, 0.72);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}
body.page-collection_view .cv-item__poster {
    flex: 0 0 auto;
    width: 104px;
    height: 150px;
    border-radius: 10px;
    overflow: hidden;
    background: #f3efe8;
    display: flex;
    align-items: center;
    justify-content: center;
}
body.page-collection_view .cv-item__poster img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
body.page-collection_view .cv-item__poster--empty {
    color: #cdbb9e;
    font-size: 34px;
}
body.page-collection_view .cv-item__body {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-collection_view .cv-item__title {
    display: block;
    font-size: 16px;
    font-weight: 700;
    color: #2d2419;
    text-decoration: none;
    line-height: 1.4;
    word-break: break-word;
}
body.page-collection_view .cv-item__title:hover {
    color: #d59043;
}
body.page-collection_view .cv-item__rating {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 6px;
    font-size: 12.5px;
    color: #b9722e;
}
body.page-collection_view .cv-item__rating i {
    color: #e8a23a;
}
body.page-collection_view .cv-item__rating a {
    color: #b9722e;
    text-decoration: none;
}
body.page-collection_view .cv-item__rating a:hover {
    text-decoration: underline;
}
body.page-collection_view .cv-item__info {
    margin-top: 8px;
    font-size: 12.5px;
    color: #8a7a64;
    line-height: 1.85;
    word-break: break-word;
}
body.page-collection_view .cv-item__note {
    margin-top: 10px;
    padding: 8px 12px;
    border-radius: 10px;
    background: #faf6ef;
    border: 1px solid #efe7d8;
    font-size: 12.5px;
    color: #6b5947;
    line-height: 1.6;
}
body.page-collection_view .cv-item__note-label {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-right: 6px;
    color: #b9722e;
    font-weight: 700;
}
body.page-collection_view .cv-item__note-label i {
    font-size: 11px;
}

/* ---------- 评论区 ---------- */
body.page-collection_view .cv-comments {
    margin-top: 18px;
    padding: 18px 20px;
    border: 1px solid #ebe8e3;
    border-radius: 16px;
    background: #fff;
}
body.page-collection_view .cv-reply__more {
    margin: 10px 0 0;
    text-align: center;
}
body.page-collection_view .cv-reply__more a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #b9722e;
    font-size: 13px;
    text-decoration: none;
}
body.page-collection_view .cv-reply__more a:hover {
    text-decoration: underline;
}

/* ---------- 空状态 ---------- */
body.page-collection_view .cv-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 50px 20px;
    margin-bottom: 18px;
    border: 1px solid #ebe8e3;
    border-radius: 16px;
    background: #fff;
    color: #b29a78;
}
body.page-collection_view .cv-empty--inline {
    border: 0;
    padding: 36px 20px;
    margin-bottom: 0;
}
body.page-collection_view .cv-empty i {
    font-size: 40px;
    color: #e0c49a;
}
body.page-collection_view .cv-empty span {
    font-size: 14px;
}

@media (max-width: 768px) {
    body.page-collection_view .cv-hero {
        flex-wrap: wrap;
    }
    body.page-collection_view .cv-hero__title {
        padding-right: 0;
    }
    body.page-collection_view .cv-hero__actions {
        width: 100%;
        align-self: auto;
    }
    body.page-collection_view .cv-list {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
 * [合集编辑 collection_edit.php] 新版页面
 *   渐变 hero + 信息卡（ui-dropdown / 焦糖复选 / BBCode 描述）
 *   + 影视列表焦糖表格（动态增删行）
 * ============================================================ */
/* 中和 begin_main_frame() 产生的固定宽度 table.main 包裹层 */
body.page-collection_edit #outer > table.main:has(.ce-page) {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-collection_edit #outer > table.main:has(.ce-page) > tbody > tr > td.embedded {
    padding-right: var(--site-content-inline-gap, 26px) !important;
    padding-left: var(--site-content-inline-gap, 26px) !important;
}
body.page-collection_edit .ce-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    text-align: left;
    color: #5f4e3e;
}
body.page-collection_edit .ce-page * {
    box-sizing: border-box;
}

/* ---------- Hero ---------- */
body.page-collection_edit .ce-hero {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 26px;
    margin: 14px 0 18px;
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    border: 1px solid rgba(232, 222, 207, 0.7);
}
body.page-collection_edit .ce-back {
    position: absolute;
    top: 14px;
    right: 16px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 13px;
    border-radius: 9px;
    background: #fff;
    border: 1px solid #e8decf;
    color: #8a6a44;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.15s ease, color 0.15s ease;
}
body.page-collection_edit .ce-back:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-collection_edit .ce-hero__badge {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 24px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-collection_edit .ce-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-collection_edit .ce-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    font-size: 22px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.25;
}
body.page-collection_edit .ce-hero__sub {
    margin: 6px 0 0;
    font-size: 13px;
    color: #9b8874;
    line-height: 1.5;
}

/* ---------- 卡片 ---------- */
body.page-collection_edit .ce-card {
    margin-bottom: 18px;
    padding: 20px 22px;
    border: 1px solid #ebe8e3;
    border-radius: 16px;
    background: #fff;
}
body.page-collection_edit .ce-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 16px;
    padding: 0 0 12px;
    background: none;
    border-bottom: 1px solid rgba(232, 222, 207, 0.7);
    font-size: 16px;
    font-weight: 700;
    color: #2d2419;
}
body.page-collection_edit .ce-card__title i {
    color: #d59043;
    font-size: 15px;
}

/* ---------- 字段行 ---------- */
body.page-collection_edit .ce-field {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding: 10px 0;
}
body.page-collection_edit .ce-field + .ce-field {
    border-top: 1px solid rgba(236, 223, 202, 0.55);
}
body.page-collection_edit .ce-field__label {
    flex: 0 0 84px;
    padding-top: 9px;
    font-size: 13px;
    font-weight: 700;
    color: #5f4e3e;
}
body.page-collection_edit .ce-field__control {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-collection_edit .ce-field__control--inline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}
body.page-collection_edit .ce-field--block {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}
body.page-collection_edit .ce-field--block .ce-field__label {
    padding-top: 9px;
}

/* ---------- 合集描述 BBCode 编辑器 ---------- */
body.page-collection_edit .ce-compose-card {
    width: 100%;
    max-width: none;
    padding: 0;
    border: 1px solid rgba(226, 214, 196, 0.72) !important;
    border-radius: 14px !important;
    background: rgba(255, 255, 255, 0.72) !important;
    box-shadow: 0 8px 18px rgba(49, 66, 96, 0.028) !important;
    overflow: visible !important;
}
body.page-collection_edit .ce-editor,
body.page-collection_edit .ce-compose-card #editorouter {
    width: 100%;
    max-width: none;
}
body.page-collection_edit .ce-compose-card #editorouter > table,
body.page-collection_edit .ce-compose-card #editorouter > table > tbody {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.page-collection_edit .ce-compose-card #editorouter > table > tbody > tr,
body.page-collection_edit .ce-compose-card #editorouter > table > tr {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
}
body.page-collection_edit .ce-compose-card #editorouter > table > tbody > tr > td,
body.page-collection_edit .ce-compose-card #editorouter > table > tr > td,
body.page-collection_edit .ce-compose-card #editorouter table,
body.page-collection_edit .ce-compose-card #editorouter td {
    border: 0 !important;
    background: transparent !important;
}
body.page-collection_edit .ce-compose-card #editorouter > table > tbody > tr > td,
body.page-collection_edit .ce-compose-card #editorouter > table > tr > td {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    text-align: left !important;
}
body.page-collection_edit .ce-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table,
body.page-collection_edit .ce-compose-card #editorouter > table > tr:not(:has(> td > textarea.bbcode)) > td > table,
body.page-collection_edit .ce-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tbody {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border-spacing: 0 !important;
}
body.page-collection_edit .ce-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tbody > tr,
body.page-collection_edit .ce-compose-card #editorouter > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tr {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 4px !important;
    width: 100% !important;
    padding: 6px 10px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(222, 218, 210, 0.72) !important;
    border-radius: 14px 14px 0 0 !important;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(250, 248, 244, 0.76)) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86) !important;
    overflow: visible !important;
}
body.page-collection_edit .ce-compose-card #editorouter:focus-within > table > tbody > tr:not(:has(> td > textarea.bbcode)) > td > table > tbody > tr,
body.page-collection_edit .ce-compose-card #editorouter:focus-within > table > tr:not(:has(> td > textarea.bbcode)) > td > table > tr {
    border-color: rgba(202, 145, 83, 0.52) !important;
    background: rgba(255, 249, 240, 0.82) !important;
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded:has(> input[type="button"]),
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__bbcode-icon {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    border-radius: 7px !important;
    color: #655647 !important;
    transition: background 0.16s ease, color 0.16s ease !important;
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded:has(> input[type="button"]):hover,
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__bbcode-icon:hover,
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__bbcode-icon.is-active {
    background: rgba(255, 238, 216, 0.82) !important;
    color: #8a5518 !important;
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded:has(> input[type="button"]) > input[type="button"] {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    color: inherit !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-shadow: none !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__bbcode-icon > input[type="button"] {
    position: absolute !important;
    inset: 0 !important;
    opacity: 0 !important;
    color: transparent !important;
    font-size: 0 !important;
    text-indent: -9999px !important;
    z-index: 2 !important;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__bbcode-icon-glyph {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: inherit;
    font-size: 12.5px;
    line-height: 1;
    pointer-events: none;
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__bbcode-icon::after {
    content: attr(data-bbcode-label) !important;
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    z-index: 40;
    padding: 5px 9px;
    border-radius: 6px;
    background: rgba(35, 28, 20, 0.92);
    color: #fff;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) translateY(2px);
    transition: opacity 0.16s ease, transform 0.16s ease;
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__bbcode-icon:hover::after,
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__bbcode-icon:focus-within::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded:has(> .ui-dropdown) {
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    min-width: 0 !important;
    height: 28px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
    order: 1 !important;
}
body.page-collection_edit .ce-compose-card #editorouter .ui-dropdown,
body.page-collection_edit .ce-compose-card #editorouter .ui-dropdown:focus-within {
    min-width: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__toolbar-dd .ui-dropdown-trigger {
    width: auto !important;
    min-width: 0 !important;
    min-height: 24px !important;
    height: 24px !important;
    padding: 0 6px !important;
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    color: #8a5518 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__toolbar-dd:hover .ui-dropdown-trigger,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__toolbar-dd:focus-within .ui-dropdown-trigger,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__toolbar-dd .ui-dropdown-trigger:hover,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__toolbar-dd .ui-dropdown-trigger:focus {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #7a572d !important;
    transform: none !important;
}
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__emoji-toggle,
body.page-collection_edit .ce-compose-card #editorouter td.embedded.forum-compose__bbcode-icon:has(> input[name="_emojitoggle"]) {
    order: 0 !important;
}
body.page-collection_edit .ce-compose-card #editorouter > table > tbody > tr:has(> td > textarea.bbcode),
body.page-collection_edit .ce-compose-card #editorouter > table > tr:has(> td > textarea.bbcode) {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
}
body.page-collection_edit .ce-compose-card #editorouter
    > table > tbody > tr:has(> td > textarea.bbcode) > td:has(> textarea.bbcode),
body.page-collection_edit .ce-compose-card #editorouter
    > table > tr:has(> td > textarea.bbcode) > td:has(> textarea.bbcode) {
    order: 2 !important;
}
body.page-collection_edit .ce-compose-card #editorouter textarea.bbcode {
    width: 100% !important;
    max-width: none !important;
    min-height: 260px !important;
    margin: 0 !important;
    padding: 14px !important;
    border: 0 !important;
    border-radius: 0 0 14px 14px !important;
    background: rgba(255, 255, 255, 0.62) !important;
    color: #4a3c2d;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.65;
    resize: vertical;
    box-shadow: none !important;
}
body.page-collection_edit .ce-compose-card #editorouter textarea.bbcode:focus {
    outline: none;
}
body.page-collection_edit .ce-compose-card #editorouter:not(.is-emoji-open) .forum-compose__emoji-panel {
    display: none !important;
}
body.page-collection_edit .ce-compose-card #editorouter.is-emoji-open .forum-compose__emoji-panel {
    display: block !important;
    box-sizing: border-box !important;
    order: 1 !important;
    width: auto !important;
    margin: 4px 10px 0 !important;
    padding: 8px 10px !important;
    border: 1px dashed rgba(218, 150, 70, 0.45) !important;
    border-radius: 10px !important;
    background: rgba(255, 250, 244, 0.78) !important;
    box-shadow: none !important;
    overflow: visible !important;
    animation: upload-compose-emoji-pop 0.18s ease-out;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-panel > table,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-panel > table > tbody {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 5px !important;
    width: 100% !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-panel > table tr {
    display: contents !important;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-panel td.embedded,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-all a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: transparent !important;
    overflow: visible !important;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-panel td.embedded:hover,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-all a:hover {
    background: rgba(255, 238, 216, 0.82) !important;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-panel img,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-all img {
    display: block !important;
    max-width: 20px !important;
    max-height: 20px !important;
    transition: transform 0.12s ease;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-panel a:hover img,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-all a:hover img {
    transform: translateY(-1px) scale(1.08);
}
body.page-collection_edit .ce-compose-card #editorouter.is-emoji-open .forum-compose__emoji-panel a:not(:has(img)),
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-more {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    height: 26px !important;
    margin: 0 0 0 4px !important;
    padding: 0 10px !important;
    border: 1px solid rgba(224, 177, 113, 0.45) !important;
    border-radius: 999px !important;
    background: rgba(255, 247, 236, 0.9) !important;
    color: #8a5518 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
body.page-collection_edit .ce-compose-card #editorouter.is-emoji-open .forum-compose__emoji-panel a:not(:has(img)):hover,
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-more:hover {
    border-color: rgba(202, 145, 83, 0.6) !important;
    background: #fff5e6 !important;
    color: #6e4111 !important;
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-all {
    display: none;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed rgba(218, 150, 70, 0.32);
}
body.page-collection_edit .ce-compose-card #editorouter .forum-compose__emoji-panel.is-allemoji-open .forum-compose__emoji-all {
    display: flex;
}

/* ---------- 输入框 ---------- */
body.page-collection_edit .ce-input {
    width: 100%;
    max-width: 520px;
    padding: 9px 13px;
    border: 1px solid #e1d6c4;
    border-radius: 10px;
    background: #fffdfa;
    color: #4a3c2d;
    font-size: 13px;
    line-height: 1.4;
    transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
body.page-collection_edit .ce-input:focus {
    outline: none;
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.16);
}

/* ---------- 焦糖复选框 ---------- */
body.page-collection_edit .ce-check {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding-top: 7px;
    font-size: 13px;
    color: #6b5947;
    cursor: pointer;
}
body.page-collection_edit .ce-check input[type="checkbox"] {
    box-sizing: border-box;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin: 0;
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid #d8c4a8;
    border-radius: 4px;
    background: #fff no-repeat center;
    background-size: 11px 11px;
    cursor: pointer;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
body.page-collection_edit .ce-check input[type="checkbox"]:hover {
    border-color: #d59043;
}
body.page-collection_edit .ce-check input[type="checkbox"]:checked {
    border-color: #d59043;
    background-color: #d59043;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5l3 3 6-6.5'/%3E%3C/svg%3E");
}
body.page-collection_edit .ce-check input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.25);
}

/* ---------- 分类下拉（ui-dropdown 页面级修饰）---------- */
body.page-collection_edit .ce-field .ui-dropdown {
    min-width: 0;
    background: #fffdfa;
    border: 1px solid #e1d6c4;
    border-radius: 10px;
    font-size: 13px;
}
body.page-collection_edit .ce-field .ui-dropdown:focus-within {
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.16);
}

/* ---------- 分类说明 tooltip ---------- */
body.page-collection_edit .ce-help {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #9b8874;
    font-size: 12.5px;
    cursor: help;
}
body.page-collection_edit .ce-help i {
    color: #c2a378;
}
body.page-collection_edit .ce-help__pop {
    visibility: hidden;
    opacity: 0;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 20;
    width: 360px;
    max-width: 78vw;
    padding: 12px 14px;
    border-radius: 12px;
    background: #2d2419;
    color: #f3ead9;
    font-size: 12px;
    line-height: 1.9;
    box-shadow: 0 12px 28px rgba(40, 30, 16, 0.28);
    transition: opacity 0.16s ease, visibility 0.16s ease;
}
body.page-collection_edit .ce-help__pop b {
    color: #f0b96f;
}
body.page-collection_edit .ce-help:hover .ce-help__pop {
    visibility: visible;
    opacity: 1;
}

/* ---------- 提示列表 ---------- */
body.page-collection_edit .ce-tips {
    margin: 0 0 16px;
    padding: 14px 16px 14px 34px;
    border-radius: 12px;
    background: #faf6ef;
    border: 1px solid #efe7d8;
    color: #8a7a64;
    font-size: 12.5px;
    line-height: 1.9;
    word-break: break-word;
}

/* ---------- 影视列表表格 ---------- */
body.page-collection_edit .ce-table-wrap {
    overflow-x: auto;
}
body.page-collection_edit .ce-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border: 1px solid #ecdfca;
    border-radius: 12px;
    overflow: hidden;
    background: #fffdfa;
}
body.page-collection_edit .ce-table td {
    padding: 9px 10px;
    border-top: 1px solid rgba(236, 223, 202, 0.7);
    vertical-align: middle;
}
body.page-collection_edit .ce-table tr:first-child td {
    border-top: 0;
}
body.page-collection_edit .ce-th {
    background: linear-gradient(135deg, #fbe6cf, #f7dcb8);
    color: #8a5a1c;
    font-weight: 700;
    font-size: 12.5px;
    white-space: nowrap;
    text-align: left;
}
body.page-collection_edit .ce-th--no,
body.page-collection_edit .ce-td-no {
    width: 48px;
    text-align: center;
}
body.page-collection_edit .ce-td-no {
    color: #9b8874;
    font-weight: 700;
    font-size: 13px;
}
body.page-collection_edit .ce-th--op {
    width: 96px;
    text-align: center;
}
body.page-collection_edit .ce-table .ce-input {
    max-width: none;
    padding: 7px 10px;
}
body.page-collection_edit .ce-table .ce-input--id {
    width: 130px;
}
body.page-collection_edit .ce-table .ce-input--comment {
    width: 100%;
    min-width: 180px;
}
body.page-collection_edit .ce-table td:last-child {
    text-align: center;
}

/* ---------- 小按钮（插入行）---------- */
body.page-collection_edit .ce-mini-btn {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 5px 11px;
    border-radius: 8px;
    border: 1px solid #e8decf;
    background: #fff;
    color: #8a6a44;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
body.page-collection_edit .ce-mini-btn:hover {
    border-color: #d59043;
    color: #6f3a00;
    background: #fdf4e7;
}
body.page-collection_edit .ce-mini-btn i {
    font-size: 10px;
}

/* ---------- 操作区主按钮 ---------- */
body.page-collection_edit .ce-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    margin-top: 20px;
}
body.page-collection_edit .ce-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 11px 26px;
    border-radius: 11px;
    border: 0;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
body.page-collection_edit .ce-btn--primary {
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
}
body.page-collection_edit .ce-btn--primary:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 9px 20px rgba(213, 144, 67, 0.32);
}
body.page-collection_edit .ce-btn--primary:disabled {
    filter: grayscale(0.3) brightness(0.96);
    box-shadow: none;
    cursor: default;
    transform: none;
}
body.page-collection_edit .ce-btn--ghost {
    background: #fff;
    border: 1px solid #e8decf;
    color: #6b5947;
}
body.page-collection_edit .ce-btn--ghost:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-collection_edit .ce-hint {
    margin: 12px 0 0;
    text-align: center;
    font-size: 12px;
    color: #b29a78;
}

@media (max-width: 768px) {
    body.page-collection_edit .ce-hero {
        flex-wrap: wrap;
    }
    body.page-collection_edit .ce-field {
        flex-direction: column;
        gap: 8px;
    }
    body.page-collection_edit .ce-field__label {
        flex-basis: auto;
        padding-top: 0;
    }
    body.page-collection_edit .ce-field--block {
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    body.page-collection_edit .ce-input {
        max-width: none;
    }
}


/* ============================================================
 * [推荐认领 claim.php?act=seeder] 新版页面
 *   渐变 hero + 排序胶囊 + 推荐种子卡片列表
 * ============================================================ */
body.page-claim #outer > table.main:has(.claim-seeder-page) {
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
}
body.page-claim #outer > table.main:has(.claim-seeder-page) > tbody > tr > td.embedded {
    padding-right: 0 !important;
    padding-left: 0 !important;
}
body.page-claim .claim-seeder-page {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin: 0 auto;
    padding-right: var(--site-content-inline-gap, 26px);
    padding-left: var(--site-content-inline-gap, 26px);
    text-align: left;
    color: #5f4e3e;
}
body.page-claim .claim-seeder-page * {
    box-sizing: border-box;
}
body.page-claim .claim-seeder-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 26px;
    margin: 14px 0 18px;
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    border: 1px solid rgba(232, 222, 207, 0.7);
}
body.page-claim .claim-seeder-hero__badge {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-claim .claim-seeder-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-claim .claim-seeder-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    font-size: 22px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.2;
}
body.page-claim .claim-seeder-hero__sub {
    margin: 6px 0 0;
    font-size: 13px;
    color: #9b8874;
    line-height: 1.5;
}
body.page-claim .claim-seeder-hero__stats {
    flex: 0 0 auto;
    display: flex;
    gap: 10px;
}
body.page-claim .claim-seeder-hero__stat {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 96px;
    padding: 10px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-claim .claim-seeder-hero__stat-label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
    white-space: nowrap;
}
body.page-claim .claim-seeder-hero__stat-label i {
    color: #d59043;
}
body.page-claim .claim-seeder-hero__stat-value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}
body.page-claim .claim-seeder-tabs {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}
body.page-claim .claim-seeder-tab,
body.page-claim .claim-seeder-sort__item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    border-radius: 11px;
    background: #fff;
    border: 1px solid #e8decf;
    color: #6b5947;
    font-weight: 600;
    text-decoration: none;
    transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, color 0.16s ease, background 0.16s ease;
}
body.page-claim .claim-seeder-tab {
    padding: 9px 18px;
    font-size: 14px;
}
body.page-claim .claim-seeder-tab i,
body.page-claim .claim-seeder-sort__item i {
    color: #c08a4e;
}
body.page-claim .claim-seeder-tab:hover,
body.page-claim .claim-seeder-sort__item:hover {
    border-color: #d59043;
    color: #6f3a00;
    transform: translateY(-1px);
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.14);
}
body.page-claim .claim-seeder-tab.is-active,
body.page-claim .claim-seeder-sort__item.is-active {
    background: #fcf2e4;
    border-color: #ecd3b0;
    color: #b9722e;
    box-shadow: inset 0 0 0 1px rgba(213, 144, 67, 0.12);
}
body.page-claim .claim-seeder-tab.is-active i,
body.page-claim .claim-seeder-sort__item.is-active i {
    color: #d59043;
}
body.page-claim .claim-seeder-filter {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0;
    margin-bottom: 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
body.page-claim .claim-seeder-filter__label {
    flex: 0 0 auto;
    padding-top: 0;
    font-size: 13px;
    font-weight: 700;
    color: #5f4e3e;
}
body.page-claim .claim-seeder-sort {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
body.page-claim .claim-seeder-sort__item {
    padding: 7px 13px;
    font-size: 13px;
}
body.page-claim .claim-seeder-section {
    margin-bottom: 16px;
}
body.page-claim .claim-seeder-list {
    display: grid;
    gap: 14px;
}
body.page-claim .claim-seeder-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 230px;
    gap: 18px;
    padding: 18px 20px;
    border: 1px solid #ebe8e3;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(40, 42, 48, 0.04), 0 10px 24px rgba(40, 42, 48, 0.06);
    transition: transform 0.24s cubic-bezier(0.22, 0.61, 0.36, 1), box-shadow 0.24s ease, border-color 0.24s ease;
}
body.page-claim .claim-seeder-card:hover {
    transform: translateY(-2px);
    border-color: #ddd8d0;
    box-shadow: 0 2px 4px rgba(40, 42, 48, 0.05), 0 16px 30px rgba(40, 42, 48, 0.09);
}
body.page-claim .claim-seeder-card.is-claimed {
    border-color: rgba(213, 144, 67, 0.4);
    background: linear-gradient(135deg, #fff 0%, #fffaf3 100%);
}
body.page-claim .claim-seeder-card__top,
body.page-claim .claim-seeder-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 14px;
}
body.page-claim .claim-seeder-card__id,
body.page-claim .claim-seeder-card__cat,
body.page-claim .claim-seeder-card__claimed {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}
body.page-claim .claim-seeder-card__id {
    background: #f2ede4;
    color: #97866e;
}
body.page-claim .claim-seeder-card__cat {
    background: #f6ead8;
    color: #8a5a1c;
}
body.page-claim .claim-seeder-card__claimed {
    background: #e8f4e8;
    color: #3c7d42;
}
body.page-claim .claim-seeder-card__title {
    margin: 10px 0 0;
    padding: 0;
    background: none;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.45;
}
body.page-claim .claim-seeder-card__title a {
    color: #2d2419;
    text-decoration: none;
}
body.page-claim .claim-seeder-card__title a:hover {
    color: #d59043;
}
body.page-claim .claim-seeder-card__desc {
    margin: 6px 0 0;
    color: #8a7a64;
    font-size: 13px;
    line-height: 1.6;
    word-break: break-word;
}
body.page-claim .claim-seeder-card__meta {
    margin-top: 12px;
    color: #9b7a4f;
    font-size: 12.5px;
}
body.page-claim .claim-seeder-card__meta i {
    margin-right: 5px;
    color: #c2a378;
}
body.page-claim .claim-seeder-card__side {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
    padding-left: 18px;
    border-left: 1px solid rgba(236, 223, 202, 0.7);
}
body.page-claim .claim-seeder-quota__text {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    font-size: 12px;
    color: #9b8874;
}
body.page-claim .claim-seeder-quota__text strong {
    color: #b9722e;
    font-size: 16px;
}
body.page-claim .claim-seeder-quota__bar {
    height: 7px;
    margin-top: 7px;
    border-radius: 999px;
    background: #f2ede4;
    overflow: hidden;
}
body.page-claim .claim-seeder-quota__bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #e8b36d, #d59043);
}
body.page-claim .claim-seeder-card__actions {
    display: grid;
    gap: 8px;
}
body.page-claim .claim-seeder-action-target {
    display: contents;
}
body.page-claim .claim-seeder-btn,
body.page-claim .claim-seeder-action-target > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    min-height: 34px;
    padding: 8px 14px;
    border-radius: 10px;
    border: 1px solid transparent;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, border-color 0.16s ease, color 0.16s ease, background 0.16s ease;
}
body.page-claim .claim-seeder-btn--primary,
body.page-claim .claim-seeder-action-target > a {
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
}
body.page-claim .claim-seeder-btn--primary:hover,
body.page-claim .claim-seeder-action-target > a:hover {
    color: #fff;
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 9px 20px rgba(213, 144, 67, 0.32);
}
body.page-claim .claim-seeder-btn--ghost {
    background: #fff;
    border-color: #e8decf;
    color: #6b5947;
    box-shadow: none;
}
body.page-claim .claim-seeder-btn--ghost:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-claim .claim-seeder-btn--danger {
    background: linear-gradient(135deg, #d98a72, #c85f48);
    box-shadow: 0 6px 14px rgba(200, 95, 72, 0.2);
}
body.page-claim .claim-seeder-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 56px 20px;
    border: 1px solid #ebe8e3;
    border-radius: 16px;
    background: #fff;
    color: #b29a78;
}
body.page-claim .claim-seeder-empty i {
    font-size: 42px;
    color: #e0c49a;
}
body.page-claim .claim-seeder-empty span {
    font-size: 15px;
}
body.page-claim .claim-seeder-hidden {
    display: none;
}
@media (max-width: 900px) {
    body.page-claim .claim-seeder-card {
        grid-template-columns: 1fr;
    }
    body.page-claim .claim-seeder-card__side {
        padding-left: 0;
        padding-top: 14px;
        border-left: 0;
        border-top: 1px solid rgba(236, 223, 202, 0.7);
    }
}
@media (max-width: 768px) {
    body.page-claim .claim-seeder-hero {
        flex-wrap: wrap;
    }
    body.page-claim .claim-seeder-hero__stats {
        width: 100%;
    }
    body.page-claim .claim-seeder-filter {
        flex-direction: column;
        gap: 10px;
    }
}


/* claim.php?act=seeder 结果区：改为接近 torrents.php 的高密度列表 */
body.page-claim .claim-seeder-table-wrap {
    width: 100%;
    margin-right: auto;
    margin-left: auto;
    overflow-x: auto;
    border: 1px solid #ead9bf;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(120, 90, 50, 0.05), 0 10px 24px rgba(120, 90, 50, 0.07);
}
body.page-claim .claim-seeder-table {
    width: 100%;
    min-width: 0;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}
body.page-claim .claim-seeder-th {
    padding: 11px 10px;
    background: linear-gradient(180deg, #fffdf9 0%, #faf3e8 100%);
    border-bottom: 1px solid #ecdcc3;
    color: #8a7559;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), inset 0 -1px 0 rgba(236, 220, 195, 0.7);
}
body.page-claim .claim-seeder-th a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    color: #8a7559;
    text-decoration: none;
}
body.page-claim .claim-seeder-th a:hover {
    color: #b9722e;
}
body.page-claim .claim-seeder-th--cat { width: 76px; }
body.page-claim .claim-seeder-th--size { width: 88px; }
body.page-claim .claim-seeder-th--seeders { width: 54px; }
body.page-claim .claim-seeder-th--claim { width: 84px; }
body.page-claim .claim-seeder-th--time { width: 132px; }
body.page-claim .claim-seeder-th--actions { width: 156px; }
body.page-claim .claim-seeder-row {
    background: #fff;
    transition: background 0.16s ease;
}
body.page-claim .claim-seeder-row:nth-child(even) {
    background: #fcf8f0;
}
body.page-claim .claim-seeder-row:hover {
    background: #fbf3e7;
}
body.page-claim .claim-seeder-row.is-claimed {
    background: #fffaf2;
}
body.page-claim .claim-seeder-row.is-claimed:hover {
    background: #fff4e2;
}
body.page-claim .claim-seeder-td {
    padding: 11px 12px;
    border-top: 1px solid rgba(214, 194, 160, 0.45);
    border-left: 0 !important;
    border-right: 0 !important;
    color: #4a3c2d;
    font-size: 12px;
    line-height: 1.45;
    vertical-align: middle;
}
body.page-claim .claim-seeder-table tbody tr:first-child .claim-seeder-td {
    border-top: 0;
}
body.page-claim .claim-seeder-td--cat,
body.page-claim .claim-seeder-td--size,
body.page-claim .claim-seeder-td--seeders,
body.page-claim .claim-seeder-td--claim,
body.page-claim .claim-seeder-td--time,
body.page-claim .claim-seeder-td--actions {
    text-align: center;
    white-space: nowrap;
}
body.page-claim .claim-seeder-td--name {
    text-align: left;
    word-break: break-word;
}
body.page-claim .claim-seeder-row__cat,
body.page-claim .claim-seeder-row__claimed {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}
body.page-claim .claim-seeder-row__cat {
    min-width: 42px;
    padding: 4px 8px;
    background: #f6ead8;
    color: #8a5a1c;
}
body.page-claim .claim-seeder-row__titleline {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}
body.page-claim .claim-seeder-row__title {
    min-width: 0;
    color: #2d2419;
    font-size: 13.5px;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
}
body.page-claim .claim-seeder-row__title:hover {
    color: #b9722e;
}
body.page-claim .claim-seeder-row__claimed {
    flex: 0 0 auto;
    padding: 3px 7px;
    background: #e8f4e8;
    color: #3c7d42;
}
body.page-claim .claim-seeder-row__desc {
    margin-top: 4px;
    color: #a3937e;
    font-size: 11.5px;
    line-height: 1.5;
}
body.page-claim .claim-seeder-td--seeders {
    color: #2f7a63;
    font-weight: 700;
}
body.page-claim .claim-seeder-row-quota {
    width: 68px;
    margin: 0 auto;
}
body.page-claim .claim-seeder-row-quota span {
    display: block;
    color: #b9722e;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
body.page-claim .claim-seeder-row-quota::after {
    content: "";
    display: block;
    height: 0;
    clear: both;
}
body.page-claim .claim-seeder-row-quota b {
    display: block;
    height: 4px;
    margin-top: 4px;
    border-radius: 999px;
    background: linear-gradient(90deg, #e8b36d, #d59043);
}
body.page-claim .claim-seeder-td--claim {
    background-image: linear-gradient(#f2ede4, #f2ede4);
    background-repeat: no-repeat;
    background-size: 68px 4px;
    background-position: center calc(50% + 12px);
}
body.page-claim .claim-seeder-td--time {
    color: #9a8b78;
    font-size: 11.5px;
}
body.page-claim .claim-seeder-td--actions {
    padding-right: 8px;
    padding-left: 8px;
    white-space: nowrap;
}
body.page-claim .claim-seeder-row-action,
body.page-claim .claim-seeder-action-target--row > a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: auto !important;
    min-width: 44px;
    min-height: 0 !important;
    height: 24px;
    margin: 2px 3px;
    padding: 0 8px !important;
    border-radius: 7px !important;
    border: 1px solid #e7d8c0 !important;
    background: #fff !important;
    color: #8a7866 !important;
    box-shadow: none !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    transform: none !important;
    filter: none !important;
}
body.page-claim .claim-seeder-action-target--row {
    display: inline-flex;
}
body.page-claim .claim-seeder-row-action:hover,
body.page-claim .claim-seeder-action-target--row > a:hover {
    border-color: #d59043 !important;
    background: #fff8ed !important;
    color: #8a5518 !important;
}
body.page-claim .claim-seeder-row-action--download i {
    color: #a89478;
}
body.page-claim .claim-seeder-row-action--claim,
body.page-claim .claim-seeder-action-target--row > a {
    border-color: #ead0aa !important;
    color: #b9722e !important;
}
body.page-claim .claim-seeder-row-action--danger,
body.page-claim .claim-seeder-action-target--row > a.claim-seeder-row-action--danger {
    border-color: #eebfae !important;
    background: #fdf0ec !important;
    color: #b4543a !important;
}
/* 主操作"认领"：暖色实心，强调号召力 */
body.page-claim .claim-seeder-row-action--claim:not(.claim-seeder-row-action--danger),
body.page-claim .claim-seeder-action-target--row > a.claim-seeder-row-action--claim:not(.claim-seeder-row-action--danger) {
    border-color: transparent !important;
    background: linear-gradient(135deg, #e89b50, #d59043) !important;
    color: #fff !important;
    box-shadow: 0 3px 8px rgba(213, 144, 67, 0.28) !important;
}
body.page-claim .claim-seeder-row-action--claim:not(.claim-seeder-row-action--danger) i {
    color: #fff;
}
body.page-claim .claim-seeder-row-action--claim:not(.claim-seeder-row-action--danger):hover,
body.page-claim .claim-seeder-action-target--row > a.claim-seeder-row-action--claim:not(.claim-seeder-row-action--danger):hover {
    border-color: transparent !important;
    background: linear-gradient(135deg, #eea659, #db974a) !important;
    color: #fff !important;
    box-shadow: 0 5px 12px rgba(213, 144, 67, 0.36) !important;
}
body.page-claim .claim-seeder-row-action--danger:hover,
body.page-claim .claim-seeder-action-target--row > a.claim-seeder-row-action--danger:hover {
    border-color: #e2a08b !important;
    background: #fbe6df !important;
    color: #9c4630 !important;
}
/* ---- 我的认领记录表（claim.php view，多列自动列宽 + 横向滚动） ---- */
body.page-claim .claim-seeder-table--record {
    table-layout: auto;
    min-width: 1120px;
}
body.page-claim .claim-seeder-table--record .claim-seeder-th,
body.page-claim .claim-seeder-table--record .claim-seeder-td {
    white-space: nowrap;
    text-align: center;
    padding-left: 12px;
    padding-right: 12px;
}
body.page-claim .claim-record-th-name,
body.page-claim .claim-record-name {
    text-align: left !important;
}
body.page-claim .claim-record-name {
    white-space: normal;
    word-break: break-word;
    min-width: 240px;
}
body.page-claim .claim-record-name a {
    color: #2d2419;
    font-weight: 700;
    text-decoration: none;
}
body.page-claim .claim-record-name a:hover {
    color: #b9722e;
}
body.page-claim .claim-record-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}
body.page-claim .claim-record-status--seeding {
    background: #e8f4e8;
    color: #3c7d42;
}
body.page-claim .claim-record-status--leeching {
    background: #fdeede;
    color: #a96a1e;
}
body.page-claim .claim-record-status--none {
    background: #fbe6df;
    color: #b4543a;
}
@media (max-width: 768px) {
    body.page-claim .claim-seeder-page {
        padding-right: 12px;
        padding-left: 12px;
    }
    body.page-claim .claim-seeder-table {
        min-width: 900px;
    }
}

/* ============================================================
 * [候选 / 待审核 offers.php] 现代化页头 + 规则卡片 + 分区标题
 *   表格仍由 torrenttable() (.torrents-table) 渲染，仅重构其上方内容；
 *   intro / 分区标题 / 空状态统一用 calc(100% - 52px) 居中，与表格左右边线对齐。
 *   复用 claim 暖色设计系统。
 * ============================================================ */
body.page-offers .offers-intro,
body.page-offers .offers-section-title,
body.page-offers .offers-empty {
    box-sizing: border-box;
    width: calc(100% - (var(--site-content-inline-gap, 26px) * 2));
    margin-right: auto;
    margin-left: auto;
}
body.page-offers .offers-intro {
    margin-bottom: 16px;
}
body.page-offers .offers-intro * {
    box-sizing: border-box;
}
body.page-offers .offers-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 26px;
    margin: 14px 0;
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    border: 1px solid rgba(232, 222, 207, 0.7);
}
body.page-offers .offers-hero__badge {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-offers .offers-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-offers .offers-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    font-size: 22px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.2;
}
body.page-offers .offers-hero__sub {
    margin: 6px 0 0;
    font-size: 13px;
    color: #9b8874;
    line-height: 1.5;
}
body.page-offers .offers-hero__stats {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
body.page-offers .offers-hero__stat {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    min-width: 104px;
    padding: 10px 18px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid rgba(232, 222, 207, 0.8);
}
body.page-offers .offers-hero__stat-label {
    font-size: 12px;
    color: #9b8874;
    font-weight: 600;
    white-space: nowrap;
}
body.page-offers .offers-hero__stat-label i {
    color: #d59043;
}
body.page-offers .offers-hero__stat-value {
    font-size: 22px;
    font-weight: 700;
    color: #b9722e;
    line-height: 1.1;
}
body.page-offers .offers-rules {
    padding: 18px 22px;
    border: 1px solid #ead9bf;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(120, 90, 50, 0.05), 0 10px 24px rgba(120, 90, 50, 0.06);
}
body.page-offers .offers-rules__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 12px;
    padding: 0;
    background: none;
    font-size: 15px;
    font-weight: 700;
    color: #6f3a00;
    line-height: 1.3;
}
body.page-offers .offers-rules__title i {
    color: #d59043;
}
body.page-offers .offers-rules__warn {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-bottom: 10px;
}
body.page-offers .offers-rule-warn {
    position: relative;
    padding: 9px 12px 9px 32px;
    border-radius: 10px;
    background: #fdeede;
    color: #a4431d;
    font-weight: 600;
    font-size: 13px;
    line-height: 1.6;
}
body.page-offers .offers-rule-warn::before {
    content: "\f071";
    font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free", "FontAwesome";
    font-weight: 900;
    position: absolute;
    left: 13px;
    top: 10px;
    color: #d9863a;
    font-size: 12px;
}
body.page-offers .offers-rules__list {
    margin: 0;
    padding: 0;
    list-style: none;
    columns: 2;
    column-gap: 24px;
}
body.page-offers .offers-rules__item {
    position: relative;
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    margin-bottom: 6px;
    padding: 2px 6px 2px 18px;
    color: #5f4e3e;
    font-size: 13px;
    line-height: 1.6;
}
body.page-offers .offers-rules__item::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 12px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #d59043;
}
@media (max-width: 900px) {
    body.page-offers .offers-rules__warn {
        grid-template-columns: 1fr;
    }
    body.page-offers .offers-rules__list {
        columns: 1;
    }
}
body.page-offers .offers-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 18px auto 10px;
    padding: 0;
    background: none;
    font-size: 16px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.3;
}
body.page-offers .offers-section-title i {
    color: #d59043;
}
body.page-offers .offers-section-title--alert {
    color: #b4543a;
}
body.page-offers .offers-section-title--alert i {
    color: #cf6a4a;
}
body.page-offers .offers-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
    margin-bottom: 14px;
    padding: 56px 20px;
    border: 1px solid #ead9bf;
    border-radius: 16px;
    background: #fff;
    color: #8a7559;
}
body.page-offers .offers-empty i {
    font-size: 42px;
    color: #e0c49a;
}
body.page-offers .offers-empty span {
    font-size: 15px;
}
@media (max-width: 768px) {
    body.page-offers .offers-hero {
        flex-wrap: wrap;
    }
    body.page-offers .offers-hero__stats {
        width: 100%;
    }
}

/* ============================================================
 * [字幕区 subtitles.php] 现代化重构
 * ============================================================ */
body.page-subtitles .subtitles-page {
    box-sizing: border-box;
    width: 100%;
    text-align: left;
    color: #5f4e3e;
}
body.page-subtitles .subtitles-page * {
    box-sizing: border-box;
}
body.page-subtitles .subtitles-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 14px 0 16px;
    padding: 22px 26px;
    border: 1px solid rgba(232, 222, 207, 0.7);
    border-radius: 18px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
}
body.page-subtitles .subtitles-hero__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-subtitles .subtitles-hero__content {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-subtitles .subtitles-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.2;
}
body.page-subtitles .subtitles-hero__desc {
    margin: 7px 0 0;
    color: #8a7559;
    font-size: 13px;
    line-height: 1.6;
}
body.page-subtitles .subtitles-hero__stat {
    flex: 0 0 auto;
    min-width: 150px;
    padding: 12px 16px;
    border: 1px solid #ead9bf;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.68);
    text-align: right;
}
body.page-subtitles .subtitles-hero__stat-label {
    display: block;
    margin-bottom: 5px;
    color: #9b8874;
    font-size: 12px;
}
body.page-subtitles .subtitles-hero__stat strong {
    color: #b9722e;
    font-size: 18px;
}
body.page-subtitles .subtitles-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
    margin-bottom: 16px;
}
body.page-subtitles .subtitles-card,
body.page-subtitles .subtitles-list-card {
    border: 1px solid #ead9bf;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(120, 90, 50, 0.05), 0 10px 24px rgba(120, 90, 50, 0.06);
}
body.page-subtitles .subtitles-card {
    padding: 16px 18px;
}
body.page-subtitles .subtitles-card--upload,
body.page-subtitles .subtitles-card--rules,
body.page-subtitles .subtitles-list-card {
    overflow: visible;
}
body.page-subtitles .subtitles-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
}
body.page-subtitles .subtitles-card__title i {
    color: #d59043;
}
body.page-subtitles .subtitles-rules {
    display: grid;
    gap: 8px;
    max-height: 390px;
    margin: 14px 0 0;
    padding: 0;
    padding-right: 5px;
    overflow: auto;
    list-style: none;
    counter-reset: subtitles-rule;
    scrollbar-color: rgba(180, 140, 90, 0.45) transparent;
}
body.page-subtitles .subtitles-rules::-webkit-scrollbar {
    width: 6px;
}
body.page-subtitles .subtitles-rules::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(180, 140, 90, 0.45);
}
body.page-subtitles .subtitles-rules li {
    position: relative;
    min-height: 30px;
    padding: 7px 10px 7px 38px;
    border: 1px solid #f0e4d2;
    border-radius: 12px;
    background: #fffaf4;
    color: #5f4e3e;
    font-size: 12.5px;
    line-height: 1.6;
}
body.page-subtitles .subtitles-rules li::before {
    counter-increment: subtitles-rule;
    content: counter(subtitles-rule);
    position: absolute;
    left: 10px;
    top: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 999px;
    background: #f2d8b6;
    color: #9a5d20;
    font-size: 11px;
    font-weight: 800;
}
body.page-subtitles .subtitles-form {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}
body.page-subtitles .subtitles-form-note {
    margin: 10px 0 0;
    color: #7b6956;
    font-size: 12.5px;
}
body.page-subtitles .subtitles-field {
    display: grid;
    gap: 5px;
}
body.page-subtitles .subtitles-label {
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 800;
}
body.page-subtitles .subtitles-label span {
    margin-left: 3px;
    color: #cf5d44;
}
body.page-subtitles .subtitles-input,
body.page-subtitles .subtitles-search__input {
    width: 100%;
    height: 34px;
    padding: 0 12px;
    border: 1px solid #e8decf;
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
}
body.page-subtitles .subtitles-input--file {
    height: auto;
    padding: 6px 10px;
    line-height: 22px;
}
body.page-subtitles .subtitles-input--file::file-selector-button {
    margin-right: 10px;
    padding: 6px 12px;
    border: 1px solid #ead9bf;
    border-radius: 9px;
    background: linear-gradient(180deg, #fffdf9 0%, #faf3e8 100%);
    color: #7a6045;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
    transition: border-color 0.16s ease, color 0.16s ease, background 0.16s ease;
}
body.page-subtitles .subtitles-input--file::file-selector-button:hover {
    border-color: #d59043;
    background: #fcf2e4;
    color: #b9722e;
}
body.page-subtitles .subtitles-input:focus,
body.page-subtitles .subtitles-search__input:focus {
    outline: none;
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.12);
}
body.page-subtitles .subtitles-hint {
    margin: 0;
    color: #9b8874;
    font-size: 12px;
    line-height: 1.45;
}
body.page-subtitles .subtitles-hint strong {
    color: #7b5a36;
}
body.page-subtitles .subtitles-hint br {
    display: none;
}
body.page-subtitles .subtitles-check {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #6b5947;
    font-size: 12.5px;
    cursor: pointer;
    user-select: none;
}
body.page-subtitles .subtitles-check input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin: 0;
    border: 1px solid #dfc8a8;
    border-radius: 5px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
}
body.page-subtitles .subtitles-check input[type="checkbox"]::after {
    content: "";
    width: 8px;
    height: 5px;
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: rotate(-45deg) translate(1px, -1px) scale(0);
    transition: transform 0.14s ease;
}
body.page-subtitles .subtitles-check input[type="checkbox"]:hover,
body.page-subtitles .subtitles-check input[type="checkbox"]:focus {
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.12);
    outline: none;
}
body.page-subtitles .subtitles-check input[type="checkbox"]:checked {
    border-color: #d59043;
    background: #d59043;
}
body.page-subtitles .subtitles-check input[type="checkbox"]:checked::after {
    transform: rotate(-45deg) translate(1px, -1px) scale(1);
}
body.page-subtitles .subtitles-actions,
body.page-subtitles .subtitles-search {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
body.page-subtitles .subtitles-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 36px;
    padding: 8px 15px;
    border: 1px solid #e8decf;
    border-radius: 11px;
    background: #fff;
    color: #6b5947;
    font-size: 13px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, background 0.16s ease;
}
body.page-subtitles .subtitles-btn--primary {
    border-color: transparent;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
}
body.page-subtitles .subtitles-btn--primary:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 9px 20px rgba(213, 144, 67, 0.32);
}
body.page-subtitles .subtitles-btn--ghost:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-subtitles .subtitles-dd {
    width: 100%;
}
body.page-subtitles .subtitles-dd .ui-dropdown-trigger {
    box-sizing: border-box;
    justify-content: space-between;
    width: 100%;
    height: 34px;
    border: 1px solid #e8decf;
    border-radius: 10px;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
    font-weight: 600;
    box-shadow: none;
}
body.page-subtitles .subtitles-dd:hover .ui-dropdown-trigger,
body.page-subtitles .subtitles-dd:focus-within .ui-dropdown-trigger {
    transform: none;
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.12);
}
body.page-subtitles .subtitles-dd .ui-dropdown-list {
    min-width: 100%;
    max-height: 260px;
    overflow: auto;
}
body.page-subtitles .subtitles-dd .ui-dropdown-list a {
    font-size: 12.5px !important;
    white-space: nowrap;
}
body.page-subtitles .subtitles-list-card {
    padding: 18px 20px 20px;
}
body.page-subtitles .subtitles-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}
body.page-subtitles .subtitles-list-card__meta {
    margin: 5px 0 0;
    color: #9b8874;
    font-size: 12px;
}
body.page-subtitles .subtitles-search__input {
    width: 220px;
}
body.page-subtitles .subtitles-search .subtitles-dd {
    width: 170px;
}
body.page-subtitles .subtitles-letters {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 0 0 14px;
}
body.page-subtitles .subtitles-letter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    border: 1px solid #ead9bf;
    border-radius: 8px;
    background: #fffaf4;
    color: #7a6045;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}
body.page-subtitles .subtitles-letter--all {
    width: auto;
    min-width: 42px;
    padding: 0 10px;
}
body.page-subtitles .subtitles-letter:hover,
body.page-subtitles .subtitles-letter.is-active {
    border-color: #ecd3b0;
    background: #fcf2e4;
    color: #b9722e;
    text-decoration: none;
}
body.page-subtitles .subtitles-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 46px 20px;
    border: 1px dashed #ead9bf;
    border-radius: 14px;
    background: #fffaf4;
    color: #8a7559;
    text-align: center;
}
body.page-subtitles .subtitles-empty i {
    color: #dfbd89;
    font-size: 36px;
}
body.page-subtitles .subtitles-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #ead9bf;
    border-radius: 12px;
    background: #fff;
}
body.page-subtitles .subtitles-table {
    width: 100%;
    min-width: 840px;
    table-layout: fixed;
    border-collapse: separate;
    border-spacing: 0;
}
body.page-subtitles .subtitles-col--lang {
    width: 54px;
}
body.page-subtitles .subtitles-col--added {
    width: 92px;
}
body.page-subtitles .subtitles-col--size {
    width: 76px;
}
body.page-subtitles .subtitles-col--hits {
    width: 50px;
}
body.page-subtitles .subtitles-col--uploader {
    width: 92px;
}
body.page-subtitles .subtitles-col--actions {
    width: 138px;
}
body.page-subtitles .subtitles-table th {
    padding: 10px 8px;
    border-bottom: 1px solid #ecdcc3;
    background: linear-gradient(180deg, #fffdf9 0%, #faf3e8 100%);
    color: #8a7559;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    white-space: nowrap;
}
body.page-subtitles .subtitles-table .subtitles-th--title {
    text-align: left;
}
body.page-subtitles .subtitles-table td {
    padding: 10px 8px;
    border-top: 1px solid rgba(214, 194, 160, 0.45);
    color: #4a3c2d;
    font-size: 12.5px;
    line-height: 1.45;
    text-align: center;
    vertical-align: middle;
}
body.page-subtitles .subtitles-table tbody tr:first-child td {
    border-top: 0;
}
body.page-subtitles .subtitles-table tbody tr:nth-child(even) {
    background: #fcf8f0;
}
body.page-subtitles .subtitles-table tbody tr:hover {
    background: #fbf3e7;
}
body.page-subtitles .subtitles-td--lang img {
    max-width: 28px;
    vertical-align: middle;
}
body.page-subtitles .subtitles-td--title {
    width: auto;
    text-align: left !important;
    word-break: break-word;
}
body.page-subtitles .subtitles-td--title > a:first-child {
    color: #2d2419;
    font-weight: 800;
    text-decoration: none;
}
body.page-subtitles .subtitles-td--title > a:first-child:hover {
    color: #b9722e;
}
body.page-subtitles .subtitles-row-meta {
    display: block;
    margin-top: 4px;
    color: #9b8874;
    font-size: 11.5px;
}
body.page-subtitles .subtitles-actions-cell {
    text-align: center;
    white-space: nowrap;
}
body.page-subtitles .subtitles-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 42px;
    height: 26px;
    padding: 0 6px;
    margin-top: 0;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    text-decoration: none;
    vertical-align: middle;
}
body.page-subtitles .subtitles-actions-cell .subtitles-action + .subtitles-action {
    margin-left: 6px;
}
body.page-subtitles .subtitles-action:hover {
    text-decoration: none;
}
body.page-subtitles .subtitles-action--report {
    background: #fff4ee;
    color: #c35d49;
}
body.page-subtitles .subtitles-action--report:hover {
    background: #ffe8df;
    color: #a94432;
}
body.page-subtitles .subtitles-action--delete {
    border: 1px solid #f0cfc5;
    background: #fff9f6;
    color: #b45b49;
    box-shadow: none;
}
body.page-subtitles .subtitles-action--delete:hover {
    background: #ffe8df;
    color: #a94432;
    border-color: #e8b5a8;
}
body.page-subtitles .subtitles-nowrap {
    white-space: nowrap;
}
@media (max-width: 980px) {
    body.page-subtitles .subtitles-grid {
        grid-template-columns: 1fr;
    }
    body.page-subtitles .subtitles-hero,
    body.page-subtitles .subtitles-toolbar {
        flex-wrap: wrap;
    }
    body.page-subtitles .subtitles-hero__stat {
        width: 100%;
        text-align: left;
    }
    body.page-subtitles .subtitles-search,
    body.page-subtitles .subtitles-search__input,
    body.page-subtitles .subtitles-search .subtitles-dd {
        width: 100%;
    }
}

/* ============================================================
 * [求种区 viewrequests.php] 现代化重构
 *   渐变 Hero + 筛选胶囊 + 搜索 + 卡片表格 + 详情/表单卡片
 *   复用站点暖色设计系统；依赖 begin_main_frame() 标准内缩对齐。
 * ============================================================ */
body.page-viewrequests .req-page {
    box-sizing: border-box;
    width: 100%;
    text-align: left;
    color: #5f4e3e;
}
body.page-viewrequests .req-page * {
    box-sizing: border-box;
}
body.page-viewrequests .req-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 26px;
    margin: 14px 0 16px;
    border-radius: 16px;
    background: linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    border: 1px solid rgba(232, 222, 207, 0.7);
}
body.page-viewrequests .req-hero__badge {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 26px;
    box-shadow: 0 8px 18px rgba(213, 144, 67, 0.28);
}
body.page-viewrequests .req-hero__text {
    flex: 1 1 auto;
    min-width: 0;
}
body.page-viewrequests .req-hero__title {
    margin: 0;
    padding: 0;
    background: none;
    font-size: 22px;
    font-weight: 700;
    color: #2d2419;
    line-height: 1.2;
}
body.page-viewrequests .req-hero__sub {
    margin: 6px 0 0;
    font-size: 13px;
    color: #9b8874;
    line-height: 1.5;
}
body.page-viewrequests .req-hero__actions {
    flex: 0 0 auto;
}
body.page-viewrequests .req-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border-radius: 11px;
    border: 1px solid #e8decf;
    background: #fff;
    color: #6b5947;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, background 0.16s ease;
}
body.page-viewrequests .req-btn--primary {
    border-color: transparent;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    box-shadow: 0 6px 14px rgba(213, 144, 67, 0.25);
}
body.page-viewrequests .req-btn--primary:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
    box-shadow: 0 9px 20px rgba(213, 144, 67, 0.32);
}
body.page-viewrequests .req-btn--ghost:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-viewrequests .req-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
}
body.page-viewrequests .req-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
body.page-viewrequests .req-filter__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 13px;
    border-radius: 11px;
    background: #fff;
    border: 1px solid #e8decf;
    color: #6b5947;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: border-color 0.16s ease, color 0.16s ease, background 0.16s ease;
}
body.page-viewrequests .req-filter__item i {
    color: #c08a4e;
}
body.page-viewrequests .req-filter__item:hover {
    border-color: #d59043;
    color: #6f3a00;
}
body.page-viewrequests .req-filter__item.is-active {
    background: #fcf2e4;
    border-color: #ecd3b0;
    color: #b9722e;
}
body.page-viewrequests .req-filter__item.is-active i {
    color: #d59043;
}
body.page-viewrequests .req-search {
    display: flex;
    align-items: center;
    gap: 8px;
    position: relative;
}
body.page-viewrequests .req-search__icon {
    position: absolute;
    left: 12px;
    color: #c0ad94;
    font-size: 13px;
    pointer-events: none;
}
body.page-viewrequests .req-search__input {
    width: 260px;
    max-width: 52vw;
    height: 36px;
    padding: 0 12px 0 32px;
    border-radius: 10px;
    border: 1px solid #e8decf;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
}
body.page-viewrequests .req-search__input:focus {
    outline: none;
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.12);
}
body.page-viewrequests .req-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid #ead9bf;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(120, 90, 50, 0.05), 0 10px 24px rgba(120, 90, 50, 0.06);
}
body.page-viewrequests .req-table {
    width: 100%;
    min-width: 760px;
    border-collapse: separate;
    border-spacing: 0;
}
body.page-viewrequests .req-th {
    padding: 11px 12px;
    background: linear-gradient(180deg, #fffdf9 0%, #faf3e8 100%);
    border-bottom: 1px solid #ecdcc3;
    color: #8a7559;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
    white-space: nowrap;
}
body.page-viewrequests .req-th--name {
    text-align: left;
}
body.page-viewrequests .req-td {
    padding: 11px 12px;
    border-top: 1px solid rgba(214, 194, 160, 0.45);
    color: #4a3c2d;
    font-size: 12.5px;
    line-height: 1.45;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
}
body.page-viewrequests .req-table tbody tr:first-child .req-td {
    border-top: 0;
}
body.page-viewrequests .req-row:nth-child(even) {
    background: #fcf8f0;
}
body.page-viewrequests .req-row:hover {
    background: #fbf3e7;
}
body.page-viewrequests .req-td--name {
    text-align: left;
    white-space: normal;
    word-break: break-word;
    min-width: 240px;
}
body.page-viewrequests .req-td--name a {
    color: #2d2419;
    font-weight: 700;
    text-decoration: none;
}
body.page-viewrequests .req-td--name a:hover {
    color: #b9722e;
}
body.page-viewrequests .req-amount {
    color: #b9722e;
    font-weight: 700;
}
body.page-viewrequests .req-time {
    color: #9a8b78;
    font-size: 11.5px;
}
body.page-viewrequests .req-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}
body.page-viewrequests .req-status--done {
    background: #e8f4e8;
    color: #3c7d42;
}
body.page-viewrequests .req-status--ing {
    background: #f6ead8;
    color: #a96a1e;
}
body.page-viewrequests a.req-status--link:hover {
    background: #f1d9b4;
    color: #8a5518;
}
body.page-viewrequests .req-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 56px 20px;
    border: 1px solid #ead9bf;
    border-radius: 16px;
    background: #fff;
    color: #8a7559;
}
body.page-viewrequests .req-empty i {
    font-size: 42px;
    color: #e0c49a;
}
body.page-viewrequests .req-empty span {
    font-size: 15px;
}
body.page-viewrequests .req-maint {
    display: flex;
    align-items: center;
    gap: 24px;
    width: min(100%, 980px);
    min-height: 248px;
    margin: 14px auto 18px;
    padding: 32px 36px;
    border: 1px solid rgba(232, 222, 207, 0.82);
    border-radius: 22px;
    background:
        radial-gradient(circle at 16% 20%, rgba(232, 155, 80, 0.18), transparent 30%),
        linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    box-shadow: 0 1px 2px rgba(120, 90, 50, 0.05), 0 16px 34px rgba(120, 90, 50, 0.08);
}
body.page-viewrequests .req-maint__visual {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 84px;
    height: 84px;
    border-radius: 24px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 36px;
    box-shadow: 0 12px 24px rgba(213, 144, 67, 0.26);
}
body.page-viewrequests .req-maint__content {
    min-width: 0;
    max-width: 680px;
}
body.page-viewrequests .req-maint__eyebrow {
    display: inline-flex;
    align-items: center;
    margin-bottom: 10px;
    padding: 5px 11px;
    border: 1px solid #ecd3b0;
    border-radius: 999px;
    background: #fcf2e4;
    color: #b9722e;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
}
body.page-viewrequests .req-maint__title {
    margin: 0;
    padding: 0;
    background: none;
    color: #2d2419;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.25;
}
body.page-viewrequests .req-maint__desc {
    margin: 12px 0 0;
    color: #7b6956;
    font-size: 13.5px;
    line-height: 1.75;
}
body.page-viewrequests .req-maint__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}
body.page-viewrequests .req-section {
    margin-bottom: 16px;
}
/* 详情 / 表单卡片 */
body.page-viewrequests .req-card {
    margin: 14px 0;
    padding: 18px 22px;
    border: 1px solid #ead9bf;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(120, 90, 50, 0.05), 0 10px 24px rgba(120, 90, 50, 0.06);
}
body.page-viewrequests .req-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    padding: 0;
    background: none;
    font-size: 16px;
    font-weight: 700;
    color: #2d2419;
}
body.page-viewrequests .req-card__title i {
    color: #d59043;
}
body.page-viewrequests .req-detail {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}
body.page-viewrequests .req-detail .rowhead {
    width: 120px;
    padding: 10px 14px;
    color: #8a7559;
    font-weight: 700;
    font-size: 13px;
    background: #fbf6ee;
    border-bottom: 1px solid #f0e6d6;
    border-radius: 0;
}
body.page-viewrequests .req-detail .rowfollow {
    padding: 10px 14px;
    color: #4a3c2d;
    font-size: 13px;
    line-height: 1.6;
    border-bottom: 1px solid #f0e6d6;
    background: #fff;
}
body.page-viewrequests .req-detail tr:last-child .rowhead,
body.page-viewrequests .req-detail tr:last-child .rowfollow {
    border-bottom: 0;
}
body.page-viewrequests .req-detail a {
    color: #b9722e;
    text-decoration: none;
}
body.page-viewrequests .req-detail a:hover {
    text-decoration: underline;
}
/* 表单（新增/编辑/搜索）字段 */
body.page-viewrequests .req-form-row {
    margin-bottom: 14px;
}
body.page-viewrequests .req-form-label {
    display: block;
    margin-bottom: 6px;
    font-size: 13px;
    font-weight: 700;
    color: #5f4e3e;
}
body.page-viewrequests .req-form-hint {
    margin-left: 8px;
    color: #9b8874;
    font-weight: 400;
    font-size: 12px;
}
body.page-viewrequests .req-input {
    width: 100%;
    height: 38px;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid #e8decf;
    background: #fff;
    color: #5f4e3e;
    font-size: 13px;
}
body.page-viewrequests .req-input:focus {
    outline: none;
    border-color: #d59043;
    box-shadow: 0 0 0 3px rgba(213, 144, 67, 0.12);
}
body.page-viewrequests .req-form-actions {
    margin-top: 6px;
}
/* 快速评论：把旧的内联黑边表格美化为卡片 */
body.page-viewrequests .req-page table[style*="border:1px solid #000000"] {
    width: 100%;
    margin: 4px 0 0;
    border: 1px solid #ead9bf !important;
    border-radius: 12px;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    box-shadow: 0 1px 2px rgba(120, 90, 50, 0.05), 0 10px 24px rgba(120, 90, 50, 0.06);
}
body.page-viewrequests .req-page table[style*="border:1px solid #000000"] .text {
    padding: 16px;
    color: #5f4e3e;
}
@media (max-width: 768px) {
    body.page-viewrequests .req-hero {
        flex-wrap: wrap;
    }
    body.page-viewrequests .req-maint {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
        padding: 28px 22px;
    }
    body.page-viewrequests .req-maint__visual {
        width: 72px;
        height: 72px;
        border-radius: 22px;
        font-size: 30px;
    }
    body.page-viewrequests .req-maint__title {
        font-size: 22px;
    }
    body.page-viewrequests .req-toolbar {
        flex-direction: column;
        align-items: stretch;
    }
    body.page-viewrequests .req-search__input {
        flex: 1 1 auto;
        width: auto;
        max-width: none;
    }
}

/* ============================================================
   排行榜 topten.php —— hero + 胶囊导航 + 旧榜单表格卡片化
   ============================================================ */
body.page-topten .topten-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-topten .topten-page *,
body.page-topten .topten-page *::before,
body.page-topten .topten-page *::after {
    box-sizing: border-box;
}
body.page-topten .topten-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.72);
    border-radius: 18px;
    background:
        radial-gradient(circle at top right, rgba(245, 191, 126, 0.2), transparent 34%),
        linear-gradient(135deg, #fffdf9 0%, #fff6ea 100%);
    box-shadow: 0 12px 28px rgba(83, 62, 36, 0.055), 0 2px 7px rgba(83, 62, 36, 0.035);
}
body.page-topten .topten-hero__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 62px;
    height: 62px;
    border-radius: 18px;
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff;
    font-size: 28px;
    box-shadow: 0 10px 20px rgba(213, 144, 67, 0.28);
}
body.page-topten .topten-hero__title {
    margin: 0;
    color: #2d2419;
    font-size: 23px;
    font-weight: 850;
    line-height: 1.2;
}
body.page-topten .topten-hero__sub {
    margin: 7px 0 0;
    color: #8f7b64;
    font-size: 13px;
    line-height: 1.65;
}
body.page-topten .topten-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
    padding: 10px;
    border: 1px solid rgba(232, 222, 207, 0.72);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 20px rgba(83, 62, 36, 0.035);
}
body.page-topten .topten-nav__item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 36px;
    padding: 0 15px;
    border-radius: 11px;
    color: #6b5a47 !important;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none !important;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}
body.page-topten .topten-nav__item i {
    color: #b7a187;
    font-size: 12px;
    transition: color 0.15s ease;
}
body.page-topten .topten-nav__item:hover {
    background: #fff6ea;
    color: #b9722e !important;
    transform: translateY(-1px);
}
body.page-topten .topten-nav__item:hover i {
    color: #d59043;
}
body.page-topten .topten-nav__item.is-active {
    background: linear-gradient(135deg, #e89b50, #d59043);
    color: #fff !important;
    box-shadow: 0 7px 16px rgba(213, 144, 67, 0.22);
}
body.page-topten .topten-nav__item.is-active i {
    color: rgba(255, 255, 255, 0.92);
}
body.page-topten .topten-content {
    margin-top: 16px;
}
body.page-topten .topten-content > h2 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 14px 0 0;
    padding: 14px 18px 12px;
    border: 1px solid rgba(232, 222, 207, 0.75);
    border-bottom: 0;
    border-radius: 16px 16px 0 0;
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
    color: #2d2419;
    font-size: 15px;
    font-weight: 850;
    line-height: 1.45;
    text-align: left !important;
}
body.page-topten .topten-content > h2::before {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border-radius: 9px;
    background: rgba(213, 144, 67, 0.12);
    color: #d59043;
    content: "\f521";
    font-family: "Font Awesome 5 Pro", "Font Awesome 5 Free";
    font-size: 12px;
    font-weight: 900;
}
body.page-topten .topten-content > h2 .small,
body.page-topten .topten-content > h2 font.small {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    color: #9b8874;
    font-size: 12px;
    font-weight: 700;
}
body.page-topten .topten-content > h2 font.small:has(a) {
    font-size: 0;
}
body.page-topten .topten-content > h2 font.small:has(a) a {
    font-size: 12px;
}
body.page-topten .topten-content > h2 a,
body.page-topten .topten-content > h2 .altlink {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0 8px;
    border: 1px solid rgba(213, 144, 67, 0.28);
    border-radius: 999px;
    background: #fff;
    color: #b9722e !important;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none !important;
}
body.page-topten .topten-content > h2 a:hover,
body.page-topten .topten-content > h2 .altlink:hover {
    border-color: rgba(213, 144, 67, 0.56);
    background: #fff8ee;
}
body.page-topten .topten-content > h2 + table {
    display: block;
    width: 100% !important;
    margin: 0 0 16px;
    border: 1px solid rgba(232, 222, 207, 0.75) !important;
    border-top: 0 !important;
    border-radius: 0 0 16px 16px;
    border-collapse: separate !important;
    border-spacing: 0;
    background: #fff;
    box-shadow: 0 12px 28px rgba(83, 62, 36, 0.055), 0 2px 7px rgba(83, 62, 36, 0.03);
    overflow-x: auto;
}
body.page-topten .topten-content > h2 + table > tbody {
    display: table;
    width: 100%;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text {
    display: block;
    width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main {
    width: 100% !important;
    min-width: 760px;
    margin: 0;
    border: 0 !important;
    border-collapse: separate !important;
    border-spacing: 0;
    background: #fff;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main td {
    padding: 10px 12px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(232, 222, 207, 0.56) !important;
    background: transparent !important;
    color: #5f4e3e;
    font-size: 12.5px;
    line-height: 1.55;
    vertical-align: middle;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main tr:last-child td {
    border-bottom: 0 !important;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main tr:hover td.rowfollow {
    background: #fffaf2 !important;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main td.colhead {
    padding-top: 11px !important;
    padding-bottom: 11px !important;
    background: rgba(255, 248, 238, 0.82) !important;
    color: #6f5438 !important;
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main td.rowfollow:first-child {
    width: 62px;
    color: #b9722e;
    font-size: 13px;
    font-weight: 900;
    text-align: center !important;
    font-variant-numeric: tabular-nums;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main td.rowfollow:first-child::before {
    color: #d2b28c;
    content: "#";
    font-size: 11px;
    font-weight: 800;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main td.rowfollow:not(:nth-child(2)) {
    font-variant-numeric: tabular-nums;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main a:not([class*="_Name"]) {
    color: #b9722e;
    font-weight: 750;
    text-decoration: none;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main a:hover {
    text-decoration: underline;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main a[class*="_Name"] b {
    color: inherit !important;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main b {
    color: #3f3325;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main img {
    vertical-align: middle;
}
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main img.seeders,
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main img.leechers,
body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main img.snatched {
    filter: sepia(0.35) saturate(0.85);
    opacity: 0.76;
}
body.page-topten .topten-content > h2 + table table.main table.main {
    width: auto !important;
    min-width: 0;
    border: 0 !important;
    background: transparent !important;
}
body.page-topten .topten-content > h2 + table table.main table.main td.embedded {
    padding: 0 0 0 6px !important;
    border: 0 !important;
    background: transparent !important;
}
body.page-topten .topten-content > h2 + table table.main table.main td.embedded:first-child {
    padding-left: 0 !important;
}
body.page-topten .topten-content > h2 + table table.main table.main img[src*="pic/flag/"] {
    width: 24px;
    max-height: 16px;
    border-radius: 3px;
    box-shadow: 0 0 0 1px rgba(74, 57, 37, 0.08);
}
body.page-topten .topten-updated {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 2px 0 0;
    padding: 12px 16px;
    border: 1px dashed rgba(213, 144, 67, 0.36);
    border-radius: 13px;
    background: #fffaf2;
    color: #8f7b64;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1.6;
}
body.page-topten .topten-updated i {
    color: #d59043;
}
@media (max-width: 760px) {
    body.page-topten .topten-hero {
        align-items: flex-start;
        padding: 20px;
    }
    body.page-topten .topten-hero__badge {
        width: 52px;
        height: 52px;
        border-radius: 15px;
        font-size: 23px;
    }
    body.page-topten .topten-hero__title {
        font-size: 20px;
    }
    body.page-topten .topten-nav {
        gap: 7px;
        padding: 8px;
    }
    body.page-topten .topten-nav__item {
        flex: 1 1 calc(50% - 7px);
        justify-content: center;
        padding: 0 10px;
    }
    body.page-topten .topten-content > h2 {
        padding: 13px 14px 11px;
    }
    body.page-topten .topten-content > h2 + table > tbody > tr > td.text > table.main {
        min-width: 680px;
    }
}

/* ============================================================
   保种 TOP keeptop.php —— 与排行榜同系的卡片化排行页
   ============================================================ */
body.page-keeptop .keeptop-page {
    box-sizing: border-box;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    color: #5f4e3e;
    text-align: left;
}
body.page-keeptop .keeptop-page *,
body.page-keeptop .keeptop-page *::before,
body.page-keeptop .keeptop-page *::after {
    box-sizing: border-box;
}
body.page-keeptop .keeptop-hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 22px 24px;
    border: 1px solid rgba(232, 222, 207, 0.72);
    border-radius: 18px;
    background:
        radial-gradient(circle at top right, rgba(101, 164, 105, 0.18), transparent 34%),
        linear-gradient(135deg, #fffdf9 0%, #f7f7ea 100%);
    box-shadow: 0 12px 28px rgba(83, 62, 36, 0.055), 0 2px 7px rgba(83, 62, 36, 0.035);
}
body.page-keeptop .keeptop-hero__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 62px;
    height: 62px;
    border-radius: 18px;
    background: linear-gradient(135deg, #78b56f, #4f9460);
    color: #fff;
    font-size: 27px;
    box-shadow: 0 10px 20px rgba(79, 148, 96, 0.22);
}
body.page-keeptop .keeptop-hero__text {
    min-width: 0;
}
body.page-keeptop .keeptop-hero__title {
    margin: 0;
    color: #2d2419;
    font-size: 23px;
    font-weight: 850;
    line-height: 1.2;
}
body.page-keeptop .keeptop-hero__sub {
    margin: 7px 0 0;
    color: #7d755f;
    font-size: 13px;
    line-height: 1.65;
}
body.page-keeptop .keeptop-hero__back {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    margin-left: auto;
    min-height: 36px;
    padding: 0 14px;
    border: 1px solid rgba(213, 144, 67, 0.28);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
    color: #a46623 !important;
    font-size: 12.5px;
    font-weight: 800;
    text-decoration: none !important;
    white-space: nowrap;
}
body.page-keeptop .keeptop-hero__back:hover {
    border-color: rgba(213, 144, 67, 0.56);
    background: #fff8ee;
}
body.page-keeptop .keeptop-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: space-between;
    margin-top: 16px;
    padding: 12px;
    border: 1px solid rgba(232, 222, 207, 0.72);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 8px 20px rgba(83, 62, 36, 0.035);
}
body.page-keeptop .keeptop-toolbar__group {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
body.page-keeptop .keeptop-toolbar__group--compact {
    flex: 0 0 auto;
}
body.page-keeptop .keeptop-toolbar__label {
    flex: 0 0 auto;
    color: #9b8874;
    font-size: 12px;
    font-weight: 850;
}
body.page-keeptop .keeptop-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
}
body.page-keeptop .keeptop-sort,
body.page-keeptop .keeptop-limit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid rgba(232, 222, 207, 0.85);
    border-radius: 999px;
    background: #fff;
    color: #6b5a47 !important;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none !important;
    white-space: nowrap;
    transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}
body.page-keeptop .keeptop-sort:hover,
body.page-keeptop .keeptop-limit:hover {
    border-color: rgba(213, 144, 67, 0.48);
    background: #fff8ee;
    color: #b9722e !important;
}
body.page-keeptop .keeptop-sort.is-active,
body.page-keeptop .keeptop-limit.is-active {
    border-color: rgba(79, 148, 96, 0.35);
    background: linear-gradient(135deg, #78b56f, #4f9460);
    color: #fff !important;
    box-shadow: 0 7px 16px rgba(79, 148, 96, 0.18);
}
body.page-keeptop .keeptop-card {
    margin-top: 16px;
    overflow: hidden;
    border: 1px solid rgba(232, 222, 207, 0.75);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(83, 62, 36, 0.055), 0 2px 7px rgba(83, 62, 36, 0.03);
}
body.page-keeptop .keeptop-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 18px;
    border-bottom: 1px solid rgba(232, 222, 207, 0.72);
    background: linear-gradient(135deg, #fffdf9, #fff7ec);
}
body.page-keeptop .keeptop-card__title {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: #2d2419;
    font-size: 15px;
    font-weight: 850;
    line-height: 1.35;
}
body.page-keeptop .keeptop-card__title i {
    color: #d59043;
}
body.page-keeptop .keeptop-card__desc {
    margin: 5px 0 0;
    color: #9b8874;
    font-size: 12px;
    font-weight: 700;
}
body.page-keeptop .keeptop-table-wrap {
    width: 100%;
    overflow-x: auto;
}
body.page-keeptop .keeptop-table {
    width: 100%;
    min-width: 860px;
    border: 0;
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
}
body.page-keeptop .keeptop-table th,
body.page-keeptop .keeptop-table td {
    padding: 11px 13px;
    border: 0;
    border-bottom: 1px solid rgba(232, 222, 207, 0.56);
    color: #5f4e3e;
    font-size: 12.5px;
    line-height: 1.55;
    text-align: right;
    vertical-align: middle;
    font-variant-numeric: tabular-nums;
}
body.page-keeptop .keeptop-table th {
    background: rgba(255, 248, 238, 0.82);
    color: #6f5438;
    font-size: 12px;
    font-weight: 850;
    white-space: nowrap;
}
body.page-keeptop .keeptop-table tr:last-child td {
    border-bottom: 0;
}
body.page-keeptop .keeptop-table tbody tr:hover td {
    background: #fffaf2;
}
body.page-keeptop .keeptop-table th:first-child,
body.page-keeptop .keeptop-table td:first-child,
body.page-keeptop .keeptop-table th:nth-child(2),
body.page-keeptop .keeptop-table td:nth-child(2) {
    text-align: left;
}
body.page-keeptop .keeptop-col--rank {
    width: 82px;
}
body.page-keeptop .keeptop-col--user {
    width: 220px;
}
body.page-keeptop .keeptop-rank span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 24px;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(213, 144, 67, 0.1);
    color: #b9722e;
    font-size: 12px;
    font-weight: 900;
}
body.page-keeptop .keeptop-user {
    font-weight: 750;
    white-space: nowrap;
}
body.page-keeptop .keeptop-user .forum-user-title {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 6px;
    color: #9b8874;
    font-size: 11px;
    font-weight: 700;
}
body.page-keeptop .keeptop-user a[class*="_Name"] b {
    color: inherit !important;
}
body.page-keeptop .keeptop-table th .keeptop-sort {
    min-height: 24px;
    padding: 0 8px;
    border-color: transparent;
    background: transparent;
    color: inherit !important;
}
body.page-keeptop .keeptop-table th .keeptop-sort:hover {
    border-color: rgba(213, 144, 67, 0.32);
    background: #fff;
    color: #b9722e !important;
}
body.page-keeptop .keeptop-table th .keeptop-sort.is-active {
    border-color: rgba(79, 148, 96, 0.28);
    background: rgba(79, 148, 96, 0.12);
    color: #3f7f4f !important;
    box-shadow: none;
}
body.page-keeptop .keeptop-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 160px;
    padding: 28px;
    color: #9b8874;
    text-align: center;
}
body.page-keeptop .keeptop-empty i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 15px;
    background: rgba(79, 148, 96, 0.11);
    color: #4f9460;
    font-size: 19px;
}
body.page-keeptop .keeptop-empty strong {
    color: #4b3a28;
    font-size: 15px;
}
body.page-keeptop .keeptop-empty span {
    font-size: 12.5px;
}
@media (max-width: 860px) {
    body.page-keeptop .keeptop-hero {
        align-items: flex-start;
        flex-wrap: wrap;
        padding: 20px;
    }
    body.page-keeptop .keeptop-hero__badge {
        width: 52px;
        height: 52px;
        border-radius: 15px;
        font-size: 23px;
    }
    body.page-keeptop .keeptop-hero__back {
        width: 100%;
        justify-content: center;
        margin-left: 0;
    }
    body.page-keeptop .keeptop-toolbar,
    body.page-keeptop .keeptop-toolbar__group {
        align-items: stretch;
        flex-direction: column;
    }
    body.page-keeptop .keeptop-toolbar__group--compact {
        flex-basis: auto;
    }
}
