/* ============================================================
   午夜书廊 · MIDNIGHT BOOK GALLERY
   File 2/2 — pages: listing, rank, detail, reader, ucenter,
   vip, auth, search, info, misc + component responsive rules.
   ============================================================ */

/* ============================================================
   1. 书库 / 分类 / 完本
   ============================================================ */
.library {
    margin-top: 26px;
}

.filter-box {
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 8px 22px 10px;
    margin-top: 0;
    font-size: 14px;
}

.filter-box .channel-switch,
.filter-box .category-filter,
.filter-box .status-filter {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin: 0;
    padding: 11px 0;
    background: transparent;
    border-bottom: 1px dashed rgba(255,255,255,0.06);
}

.filter-box > div:last-child {
    border-bottom: 0;
}

.filter-box .channel-switch > span:first-child,
.filter-box .category-filter > span:first-child,
.filter-box .status-filter > span:first-child {
    flex: 0 0 46px;
    margin: 0;
    padding-top: 5px;
    font-size: 12.5px;
    letter-spacing: 2px;
    font-weight: 500;
    color: var(--muted-2);
    text-align: left;
}

.filter-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
}

.filter-box a,
.filter-group a,
.channel-switch a {
    display: inline-flex;
    align-items: center;
    height: 30px;
    margin: 0;
    padding: 0 14px;
    border: 1px solid transparent;
    border-radius: 15px;
    background: rgba(255,255,255,0.04);
    color: var(--paper-2);
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
}

.filter-box a:hover,
.filter-group a:hover,
.channel-switch a:hover {
    background: rgba(216, 167, 91, .10);
    border-color: rgba(216, 167, 91, .28);
    color: var(--gold-2);
}

.filter-box a.active,
.filter-group a.active,
.channel-switch a.active {
    background: var(--grad-gold);
    border-color: transparent;
    color: #201704;
    font-weight: 600;
}

.filter-box .category-filter ul {
    display: contents;
}

/* sort tabs */
.tabList {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 20px 0 18px;
    padding: 0 2px 14px;
    border-bottom: 1px solid var(--line);
    color: var(--paper-2);
    font-size: 14px;
}

.tabList > a {
    display: inline-flex;
    align-items: center;
    height: 34px;
    padding: 0 17px;
    border: 1px solid transparent;
    border-radius: 17px;
    background: rgba(255,255,255,0.04);
    color: var(--paper-2);
    font-size: 13.5px;
}

.tabList > a:hover {
    background: rgba(216, 167, 91, .10);
    color: var(--gold-2);
}

.tabList > a.active {
    background: var(--grad-gold);
    color: #201704;
    font-weight: 600;
}

.tabList .view-mode {
    display: flex;
    gap: 6px;
    margin-left: auto;
}

.tabList .view-mode a {
    height: 30px;
    padding: 0 13px;
    border-radius: 15px;
    background: rgba(255,255,255,0.04);
    color: var(--muted);
    font-size: 12.5px;
}

.tabList .view-mode a.active {
    background: rgba(216, 167, 91, .16);
    color: var(--gold-2);
}

.tabList .total,
.tabList > span.total {
    margin-left: auto;
    color: var(--muted-2);
    font-size: 12.5px;
    letter-spacing: .5px;
}

.tabList .total b {
    color: var(--gold);
    font-weight: 600;
}

/* gallery grid */
.grid-view {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px;
}

.grid-item {
    position: relative;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.grid-item:hover {
    transform: translateY(-4px);
    border-color: rgba(216, 167, 91, .32);
    box-shadow: var(--ring);
}

.grid-cover {
    position: relative;
    aspect-ratio: 3 / 4;
    background: var(--ink-3);
    overflow: hidden;
}

.grid-cover::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(7, 9, 13, 0) 58%, rgba(7, 9, 13, .55) 100%);
    opacity: .9;
}

.grid-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .35s ease;
}

.grid-item:hover .grid-cover img {
    transform: scale(1.04);
}

.grid-info {
    padding: 13px 13px 15px;
}

.grid-title {
    margin: 0 0 6px;
    font-family: var(--font-serif);
    font-size: 15px;
    font-weight: 600;
    color: var(--paper);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.grid-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 7px;
    color: var(--muted-2);
    font-size: 11.5px;
}

.grid-meta span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.grid-meta i {
    color: var(--gold-deep);
    font-style: normal;
}

.grid-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.65;
    color: var(--muted);
}

/* list mode */
.list-view {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.list-view .list-item {
    display: flex;
    gap: 20px;
    padding: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: 14px;
    transition: border-color .25s ease, box-shadow .25s ease;
}

.list-view .list-item:hover {
    border-color: rgba(216, 167, 91, .3);
    box-shadow: var(--ring);
}

.list-cover {
    width: 108px;
    height: 144px;
    flex: 0 0 108px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--ink-3);
    box-shadow: 0 12px 26px rgba(0, 0, 0, .45);
}

.list-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.list-info {
    flex: 1 1 auto;
    min-width: 0;
}

.list-header {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.list-title {
    margin: 0;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    color: var(--paper);
}

.list-status {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 22px;
    padding: 0 10px;
    border-radius: 11px;
    border: 1px solid rgba(216, 167, 91, .25);
    background: rgba(216, 167, 91, .08);
    color: var(--gold);
    font-size: 11.5px;
}

.list-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin: 10px 0;
    color: var(--muted-2);
    font-size: 12.5px;
}

.list-meta span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.list-meta i {
    color: var(--gold-deep);
    font-style: normal;
}

.list-desc {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.8;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.list-footer {
    margin-top: 12px;
}

.list-actions .btn-read {
    display: inline-flex;
    align-items: center;
    height: 32px;
    padding: 0 18px;
    border-radius: 16px;
    background: var(--grad-gold);
    color: #201704 !important;
    font-size: 13px;
    font-weight: 600;
}

.list-actions .btn-read:hover {
    filter: brightness(1.06);
}

/* empty / pagination */
.skeleton-empty,
.u-empty {
    color: var(--muted-2);
}

.M-box {
    padding: 26px 0 6px;
    color: var(--muted-2);
    font-size: 13px;
}

.M-box a,
.M-box span {
    display: inline-block;
    min-width: 32px;
    height: 32px;
    line-height: 30px;
    padding: 0 9px;
    margin: 0 3px;
    border: 1px solid transparent;
    border-radius: 8px;
    text-align: center;
    color: var(--paper-2);
}

.M-box a:hover {
    border-color: rgba(216, 167, 91, .3);
    color: var(--gold-2);
}

.M-box .active,
.M-box a.active {
    background: var(--grad-gold);
    color: #201704;
    font-weight: 600;
}

.M-box .active:hover {
    color: #201704;
}

.M-box .jumpBtn,
.M-box .jumpIpt {
    height: 32px;
    border: 1px solid var(--line-2);
    background: rgba(255,255,255,0.04);
    color: var(--paper-2);
    border-radius: 8px;
}

/* ============================================================
   2. 排行榜
   ============================================================ */
.book_rank_list {
    display: flex;
    gap: var(--gap);
    align-items: flex-start;
    margin: 26px auto 0;
    width: var(--maxw);
    max-width: 100%;
}

.book_rank_list .aside {
    width: 196px;
    flex: 0 0 196px;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 16px 12px;
}

.book_rank_list .aside nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.book_rank_list .aside nav .title {
    padding: 14px 10px 6px;
    color: var(--muted-2);
    font-size: 11.5px;
    letter-spacing: 2px;
}

.book_rank_list .aside nav .title:first-child {
    padding-top: 2px;
}

.book_rank_list .aside nav a {
    display: block;
    padding: 9px 12px;
    border-radius: 9px;
    color: var(--paper-2);
    font-size: 14px;
    line-height: 1.3;
}

.book_rank_list .aside nav a:hover {
    background: rgba(255,255,255,0.04);
    color: var(--gold-2);
}

.book_rank_list .aside nav a.active {
    background: linear-gradient(90deg, rgba(216, 167, 91, .16), rgba(216, 167, 91, .03));
    color: var(--gold-2);
    font-weight: 500;
    box-shadow: inset 2px 0 0 var(--gold);
}

.book_rank_list .splitLine {
    display: none;
}

.book_rank_list .article {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 24px 26px 26px;
}

.book_rank_list .article .breadcrumb {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
    color: var(--muted-2);
    font-size: 13px;
}

.book_rank_list .article .breadcrumb label:first-child {
    color: var(--paper);
    font-family: var(--font-serif);
    font-size: 20px;
    letter-spacing: 1px;
}

.classify_nav {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px 0 6px;
}

.classify_nav a {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 14px;
    border-radius: 15px;
    background: rgba(255,255,255,0.04);
    color: var(--paper-2);
    font-size: 13px;
}

.classify_nav a:hover {
    background: rgba(216, 167, 91, .1);
    color: var(--gold-2);
}

.classify_nav a.active {
    background: var(--grad-gold);
    color: #201704;
    font-weight: 600;
}

.classify_book {
    margin-top: 14px;
}

.classify_list {
    margin-bottom: 26px;
    padding-bottom: 20px;
    border-bottom: 1px dashed rgba(255,255,255,0.07);
}

.classify_list:last-child {
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 0;
}

.classify_list .title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.classify_list .title span {
    position: relative;
    padding-left: 14px;
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 1px;
    color: var(--paper);
}

.classify_list .title span::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 4px;
    height: 15px;
    transform: translateY(-50%);
    border-radius: 2px;
    background: var(--grad-gold);
}

.classify_list .title a {
    color: var(--muted-2);
    font-size: 12px;
}

.classify_list .title a:hover {
    color: var(--gold-2);
}

.classify_list .booklist {
    display: flex;
    flex-wrap: wrap;
    gap: 0 24px;
}

.classify_list .booklist > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: calc(50% - 12px);
    padding: 10px 0;
    border-bottom: 1px dashed rgba(255,255,255,0.06);
    color: var(--paper-2);
}

.classify_list .booklist > a:first-child {
    width: 100%;
    padding: 12px 0 16px;
    border-bottom: 1px solid var(--line);
}

.classify_list .booklist > a .left {
    min-width: 0;
}

.classify_list .booklist > a .bookname {
    display: block;
    max-width: 100%;
    font-family: var(--font-serif);
    font-size: 15px;
    color: var(--paper);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.classify_list .booklist > a:first-child .bookname {
    font-size: 19px;
}

.classify_list .booklist > a .author,
.classify_list .booklist > a .popularity,
.classify_list .booklist > a .nickname {
    display: block;
    margin-top: 2px;
    color: var(--muted-2);
    font-size: 12px;
}

.classify_list .booklist > a .popularity {
    color: rgba(216, 167, 91, .85);
}

.classify_list .booklist > a .right img {
    width: 54px;
    height: 72px;
    object-fit: cover;
    border-radius: 7px;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .4);
}

.classify_list .booklist > a:first-child .right img {
    width: 72px;
    height: 96px;
}

.classify_list .booklist > a:not(:first-child) .right {
    color: var(--muted-2);
    font-size: 12.5px;
}

/* rank detail rows */
.book_ran_list .booklist {
    display: flex;
    gap: 18px;
    padding: 18px 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}

.book_ran_list .booklist:last-child {
    border-bottom: 0;
}

.book_ran_list .bookimg {
    width: 92px;
    height: 124px;
    flex: 0 0 92px;
    border-radius: 9px;
    overflow: hidden;
    background: var(--ink-3);
    box-shadow: 0 12px 24px rgba(0, 0, 0, .45);
}

.book_ran_list .bookimg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.book_ran_list .bookinfo {
    flex: 1 1 auto;
    min-width: 0;
}

.book_ran_list .bookname_number {
    margin-right: 8px;
    color: var(--gold);
    font-weight: 700;
}

.book_ran_list .bookname_name {
    font-family: var(--font-serif);
    font-size: 17px;
    color: var(--paper);
}

.book_ran_list .booknick {
    margin: 6px 0;
    color: var(--muted-2);
    font-size: 12.5px;
}

.book_ran_list .bookdes {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.8;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.book_ran_list .bookbt {
    flex: 0 0 auto;
    align-self: center;
}

.book_ran_list .bookbt a {
    display: inline-flex;
    align-items: center;
    height: 32px;
    padding: 0 16px;
    border: 1px solid rgba(216, 167, 91, .3);
    border-radius: 16px;
    color: var(--gold);
    font-size: 12.5px;
}

.book_ran_list .bookbt a:hover {
    background: rgba(216, 167, 91, .1);
}

/* ============================================================
   3. 作品详情
   ============================================================ */
.box,
.boxT {
    display: flex;
    gap: var(--gap);
    align-items: flex-start;
    margin: 24px auto 0;
    width: var(--maxw);
    max-width: 100%;
    border-bottom: 0;
}

.box .lf,
.boxT .lf {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    margin-right: 0;
    float: none;
    padding: 26px 28px;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
}

.box .rt,
.boxT .rt {
    flex: 0 0 320px;
    width: 320px;
    margin-top: 0;
    float: none;
    padding: 22px;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.bookIntro {
    position: relative;
    display: flex;
    gap: 26px;
    align-items: flex-start;
}

.bookIntro .bookCover {
    position: relative;
    width: 190px;
    flex: 0 0 190px;
    margin-right: 0;
    float: none;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 22px 44px rgba(0, 0, 0, .6);
}

.bookIntro .bookImg {
    width: 190px;
    height: 254px;
    overflow: hidden;
    background: var(--ink-3);
}

.bookIntro .bookImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.bookIntro .lz {
    position: absolute;
    top: 10px;
    right: 10px;
    padding: 3px 9px;
    border-radius: 6px;
    background: rgba(7, 9, 13, .72);
    border: 1px solid rgba(216, 167, 91, .4);
    color: var(--gold-2);
    font-size: 11.5px;
    backdrop-filter: blur(6px);
}

.bookIntro > div:last-child {
    flex: 1 1 auto;
    min-width: 0;
}

.bookNm .bkNm {
    margin: 0 0 8px;
    font-family: var(--font-serif);
    font-size: 30px;
    font-weight: 600;
    letter-spacing: 2px;
    color: var(--paper);
    line-height: 1.25;
}

.bookNm .author {
    color: var(--muted-2);
    font-size: 13px;
}

.bookNm .author a {
    color: var(--gold);
}

.bookNm .author a:hover {
    color: var(--gold-2);
}

.sortList {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.sortList a {
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 10px;
    border-radius: 12px;
    background: rgba(255,255,255,0.05);
    color: var(--muted);
    font-size: 11.5px;
}

.sortList a:hover {
    color: var(--gold-2);
    background: rgba(216, 167, 91, .1);
}

.datum {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin: 20px 0 24px;
    color: var(--muted-2);
    font-size: 12.5px;
}

.datum span em {
    font-style: normal;
    font-size: 19px;
    font-weight: 600;
    color: var(--paper);
    font-family: var(--font-serif);
    margin-right: 4px;
}

.datum hr {
    width: 1px;
    height: 14px;
    margin: 0;
    border: 0;
    background: var(--line-2);
    float: none;
}

.readBtn {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 6px;
}

.readBtn a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 118px;
    height: 40px;
    margin: 0;
    padding: 0 22px;
    float: none;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: transparent;
    color: var(--paper-2);
    font-size: 14px;
    line-height: 1;
}

.readBtn a:hover {
    border-color: rgba(216, 167, 91, .45);
    color: var(--gold-2);
    opacity: 1;
}

.readBtn a.read {
    min-width: 150px;
    border: 0;
    background: var(--grad-gold);
    color: #201704;
    font-weight: 600;
    box-shadow: 0 12px 26px rgba(216, 167, 91, .22);
}

.readBtn a.read:hover {
    filter: brightness(1.05);
    color: #201704;
}

.readBtn a.bookshelfed,
.readBtn a.alreadyIn {
    border-color: rgba(127, 209, 164, .35);
    background: rgba(127, 209, 164, .1);
    color: var(--ok);
}

.readBtn .code {
    position: relative;
    float: none;
}

.readBtn .codeBox {
    position: absolute;
    top: 48px;
    left: 0;
    width: 190px;
    padding: 14px;
    background: var(--ink-2);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: var(--shadow);
    z-index: 30;
    text-align: center;
}

.readBtn .codeBox span {
    display: block;
    margin-bottom: 8px;
    color: var(--muted);
    font-size: 12px;
}

.readBtn .codeBox img,
.readBtn .codeBox canvas {
    width: 140px;
    height: 140px;
    background: #fff;
    padding: 6px;
    border-radius: 8px;
}

/* tabs + panels */
.tabTopBox {
    margin-top: var(--gap);
    padding: 24px 28px 26px;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.tabList span {
    color: var(--muted);
}

.tabList span.current {
    color: var(--gold-2);
    border-bottom-color: var(--gold);
}

.bookDetails .intro,
.intro {
    color: var(--muted);
    font-size: 14px;
    line-height: 2;
}

.bookDetails h3,
.newChapter h3,
.chapterMore {
    font-family: var(--font-serif);
    letter-spacing: 1px;
    color: var(--paper);
}

.chapter-list-box a {
    display: block;
    float: left;
    width: 50%;
    padding: 9px 10px;
    border-bottom: 1px dashed rgba(255,255,255,0.06);
    border-radius: 6px;
    color: var(--paper-2);
    font-size: 13.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chapter-list-box a:hover {
    background: rgba(216, 167, 91, .08);
    color: var(--gold-2);
}

.chapter-pagination {
    border-top-color: var(--line) !important;
}

.chapter-pagination__btn {
    background: rgba(255,255,255,0.04) !important;
    border-color: var(--line-2) !important;
    color: var(--paper-2) !important;
    border-radius: 8px;
}

.chapter-pagination__btn:hover:not(.disabled) {
    background: rgba(216, 167, 91, .12) !important;
    border-color: rgba(216, 167, 91, .4) !important;
    color: var(--gold-2) !important;
}

.chapter-pagination__info {
    color: var(--muted-2) !important;
}

/* author side card */
.authorInfo,
.authorList {
    color: var(--paper-2);
}

.authorList h2,
.box .rt h2 {
    font-family: var(--font-serif);
    font-size: 17px;
    letter-spacing: 1px;
    color: var(--paper);
}

.authorList .m em,
.authorList em {
    color: var(--gold);
    font-style: normal;
}

.follow-btn {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 14px;
    border: 1px solid rgba(216, 167, 91, .4);
    border-radius: 15px;
    background: rgba(216, 167, 91, .08);
    color: var(--gold-2);
    font-size: 12.5px;
    cursor: pointer;
}

.follow-btn:hover {
    background: rgba(216, 167, 91, .16);
}

.follow-btn.followed {
    border-color: rgba(127, 209, 164, .35);
    background: rgba(127, 209, 164, .1);
    color: var(--ok);
}

/* comments */
.comment,
.myCmt {
    color: var(--paper-2);
}

.comment .name a {
    color: var(--paper);
}

.comment .con {
    color: var(--paper-2);
}

.comment-container,
.comments_box {
    background: transparent;
}

.comment-textarea,
.comment-input-group textarea {
    background: rgba(255,255,255,0.04) !important;
    border-color: var(--line-2) !important;
    color: var(--paper) !important;
}

.comment-submit-btn {
    background: var(--grad-gold) !important;
    color: #201704 !important;
    border: 0 !important;
    border-radius: 9px !important;
}

/* ============================================================
   4. 阅读页
   ============================================================ */
.read_details_box {
    background: var(--ink-0);
}

.read_top {
    background: rgba(7, 9, 13, .9) !important;
    border-bottom: 1px solid var(--line) !important;
    color: var(--paper-2) !important;
    backdrop-filter: blur(14px);
}

.read_top a {
    color: var(--paper-2) !important;
}

.read_top a:hover {
    color: var(--gold-2) !important;
}

.read_top .chapterTitle,
.read_top h1 {
    color: var(--paper);
    font-family: var(--font-serif);
    letter-spacing: 1px;
}

.reader-box,
#Jcontent,
.read_content {
    color: #d8d3c8;
    font-family: var(--font-serif);
    font-size: 18px;
    line-height: 2.1;
    letter-spacing: .4px;
}

.reader-box p,
#Jcontent p {
    margin-bottom: 1.1em;
}

.setUp_box,
.fontSizeBox,
.pageWidthBox,
.color_list,
.db_box,
.zbWrap,
.xbWrap {
    background: var(--ink-2) !important;
    border: 1px solid var(--line) !important;
    border-radius: 14px !important;
    color: var(--paper-2) !important;
    box-shadow: var(--shadow) !important;
}

.setUp_txt,
.setUp_btn,
.page_width_box,
.font_box,
.color_list span {
    color: var(--paper-2) !important;
}

.setUp_btn {
    border: 1px solid var(--line-2);
    border-radius: 8px;
}

.setUp_btn:hover {
    border-color: rgba(216, 167, 91, .4);
    color: var(--gold-2) !important;
}

.font_box a,
.page_width_box a,
.color_list a {
    border-radius: 6px;
}

.font_box a.active,
.page_width_box a.active,
.color_list a.active {
    background: rgba(216, 167, 91, .18) !important;
    color: var(--gold-2) !important;
}

.chapter-nav,
.paging_directory,
.paging_left,
.paging_right {
    color: var(--paper-2);
}

.paging_directory,
.paging_left,
.paging_right {
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--line-2);
    border-radius: 10px;
}

/* ============================================================
   5. 个人中心
   ============================================================ */
.personal_box {
    display: flex;
    gap: var(--gap);
    align-items: flex-start;
    width: var(--maxw);
    max-width: 100%;
    margin: 26px auto;
}

.personal_box .left_box {
    width: 262px;
    flex: 0 0 262px;
    min-height: auto;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
}

.personal_box .left_box .personal_author {
    position: relative;
    height: 108px;
    margin: 0 0 46px;
    background: radial-gradient(120% 100% at 50% 0%, rgba(216, 167, 91, .22), rgba(11, 14, 19, 0) 70%), rgba(255,255,255,0.02);
    background-image: radial-gradient(120% 100% at 50% 0%, rgba(216, 167, 91, .22), rgba(11, 14, 19, 0) 70%);
}

.personal_box .left_box .personal_author .p_author {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 92px;
    height: 92px;
    margin: 0 0 0 -46px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(216, 167, 91, .55);
    background: var(--ink-3);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .5);
}

.personal_box .left_box .personal_left {
    padding: 0 20px;
    text-align: center;
}

.personal_box .left_box .personal_left .user_name {
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
    font-family: var(--font-serif);
    font-size: 19px;
    letter-spacing: 1px;
    color: var(--paper);
    line-height: 1.3;
}

.personal_box .left_box .personal_left .user_name .vip-badge {
    display: inline-block;
    margin-left: 7px;
    padding: 0 7px;
    height: 17px;
    line-height: 17px;
    border-radius: 9px;
    font-size: 10.5px;
    font-style: normal;
    letter-spacing: .5px;
    color: #201704;
    background: var(--grad-gold);
    vertical-align: middle;
}

.personal_box .left_box .personal_left .user_balance {
    margin-bottom: 14px;
    font-size: 13px;
    color: var(--muted-2);
}

.personal_box .left_box .personal_left .user_balance b {
    margin-left: 4px;
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 600;
    color: var(--gold);
}

.personal_box .left_box .personal_left .recharge_btn a {
    display: block;
    height: 38px;
    line-height: 38px;
    margin-bottom: 18px;
    border-radius: 9px;
    background: var(--grad-gold);
    color: #201704;
    font-size: 13.5px;
    font-weight: 600;
}

.personal_box .left_box .personal_left .recharge_btn a:hover {
    filter: brightness(1.05);
}

.personal_box .left_box .personal_list {
    padding: 0 10px 14px;
    border-top: 1px solid var(--line);
    padding-top: 10px;
}

.personal_box .left_box .personal_list a {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 44px;
    padding: 0 12px;
    border-radius: 9px;
    color: var(--paper-2);
    font-size: 14px;
}

.personal_box .left_box .personal_list a p {
    font-size: 14px;
    line-height: 1;
    color: inherit;
}

.personal_box .left_box .personal_list a i {
    width: 15px;
    text-align: center;
    opacity: .85;
}

.personal_box .left_box .personal_list a:hover {
    background: rgba(255,255,255,0.04);
    color: var(--paper);
}

.personal_box .left_box .personal_list a:hover p {
    color: var(--paper);
}

.personal_box .left_box .personal_list .current {
    background: linear-gradient(90deg, rgba(216, 167, 91, .16), rgba(216, 167, 91, .02));
    border-left: 2px solid var(--gold);
    color: var(--gold-2);
}

.personal_box .left_box .personal_list .current p {
    color: var(--gold-2);
}

.personal_box .left_box .personal_list .current::after {
    content: "";
    margin-left: auto;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--gold);
}

.personal_box .right_box {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 560px;
    margin-left: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
}

.bookrack {
    padding: 22px 28px 18px;
    margin: 0;
    border-bottom: 1px solid var(--line);
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
    letter-spacing: 1.5px;
    color: var(--paper);
    line-height: 1.3;
}

.record_top {
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0 28px;
    border-bottom: 1px solid var(--line);
    background: transparent;
}

.record_top > div {
    width: 100%;
    height: 54px;
    display: flex;
    align-items: center;
    gap: 28px;
    margin: 0;
}

.record_top div a {
    float: none;
    margin: 0;
    padding: 0;
    line-height: 54px;
    font-size: 14.5px;
    color: var(--muted);
}

.record_top div a:hover {
    color: var(--gold-2);
}

.record_top div .current_btn {
    position: relative;
    top: 0;
    color: var(--gold-2);
    font-weight: 500;
    border-bottom: 2px solid var(--gold);
}

.bookrack_table,
.record_table,
.u-table-wrap {
    padding: 8px 28px 26px;
}

.table_box {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

.bookrack_table .table_box .table_th,
.record_table .table_box .table_th {
    background: rgba(255,255,255,0.04);
    border: 0;
}

.bookrack_table .table_box .table_th th,
.record_table .table_box .table_th th {
    padding: 13px 10px;
    border: 0;
    border-bottom: 1px solid var(--line);
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: 1px;
    color: var(--muted-2);
    text-align: left;
}

.bookrack_table .table_box .table_th th:first-child,
.record_table .table_box .table_th th:first-child {
    border-top-left-radius: 8px;
}

.bookrack_table .table_box .table_th th:last-child,
.record_table .table_box .table_th th:last-child {
    border-top-right-radius: 8px;
}

.bookrack_table .table_box .td_con td,
.record_table .table_box .td_con td {
    padding: 14px 10px;
    border: 0;
    border-bottom: 1px solid rgba(255,255,255,0.05);
    text-align: left;
    color: var(--paper-2);
}

.bookrack_table .table_box .td_con:hover,
.record_table .table_box .td_con:hover {
    background: rgba(255,255,255,0.02);
}

.bookrack_table .table_box .td_con td .linkBlock,
.bookrack_table .table_box .td_con td p,
.record_table .table_box .td_con td p {
    margin: 0;
    color: var(--paper-2);
    font-size: 13.5px;
    text-align: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bookrack_table .table_box .td_con td .linkBlock {
    font-family: var(--font-serif);
    font-size: 15px;
    color: var(--paper);
}

.bookrack_table .table_box .td_con a:hover,
.record_table .table_box .td_con a:hover {
    color: var(--gold-2);
}

.entry,
.new_chapter,
.table_author,
.table_time,
.table_classify {
    width: auto;
}

.bookrack_table .table_box .td_con .entry .linkBlock,
.bookrack_table .table_box .td_con .new_chapter .linkBlock {
    max-width: 260px;
}

/* ucenter forms */
.u-wrap {
    padding: 26px 28px 34px;
}

.u-notice {
    margin-bottom: 22px;
    padding: 14px 18px;
    border: 1px solid rgba(138, 169, 232, .2) !important;
    border-radius: 10px;
    background: rgba(138, 169, 232, .07) !important;
    color: var(--paper-2) !important;
    font-size: 13px;
    line-height: 1.9;
}

.u-notice a {
    color: var(--gold) !important;
}

.u-form {
    max-width: 640px;
    margin: 0 auto;
    padding: 6px 0 16px;
}

.u-form .u-row {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    color: var(--paper-2);
    font-size: 14px;
}

.u-form .u-row > label {
    width: 108px;
    flex: 0 0 108px;
    margin: 0 16px 0 0;
    text-align: right;
    color: var(--muted);
    font-size: 13.5px;
}

.u-form .u-field {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.u-form input[type="text"],
.u-form input[type="number"],
.u-form input[type="password"],
.u-form input[type="tel"],
.u-form input[type="email"],
.u-form select,
.u-form textarea {
    width: 100%;
    max-width: 360px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: rgba(255,255,255,0.04);
    color: var(--paper);
    font-size: 14px;
    outline: none;
}

.u-form textarea {
    height: 140px;
    padding: 10px 12px;
    line-height: 1.7;
    resize: vertical;
}

.u-form .u-input-short {
    max-width: 180px !important;
}

.u-form .u-code-btn {
    flex: 0 0 auto;
    height: 40px;
    padding: 0 16px;
    border: 1px solid rgba(216, 167, 91, .35);
    border-radius: 10px;
    background: rgba(216, 167, 91, .08);
    color: var(--gold);
    font-size: 13px;
    cursor: pointer;
}

.u-form .u-code-btn.disabled {
    border-color: var(--line-2);
    background: transparent;
    color: var(--muted-2);
    cursor: not-allowed;
}

.u-form .u-btn {
    height: 40px;
    padding: 0 22px;
    border-radius: 10px;
    background: var(--grad-gold);
    color: #201704;
    font-size: 14px;
    font-weight: 600;
}

.u-form .u-btn + .u-btn {
    margin-left: 10px;
}

.u-form .u-submit-row {
    padding-left: 124px;
}

.u-tips {
    margin: 4px 0 0 124px;
    color: var(--muted-2);
    font-size: 12.5px;
    line-height: 1.9;
}

.u-error {
    color: var(--danger);
    font-size: 12.5px;
}

.u-info-list {
    max-width: 720px;
    margin: 0 auto;
    padding: 6px 0 26px;
}

.u-info-list .u-info-row {
    display: flex;
    align-items: center;
    padding: 15px 0;
    border-bottom: 1px dashed rgba(255,255,255,0.06);
    color: var(--paper-2);
    font-size: 14px;
}

.u-info-list .u-info-row > label {
    flex: 0 0 130px;
    width: 130px;
    color: var(--muted-2);
    font-size: 13.5px;
}

.u-info-list .u-info-row .u-value {
    flex: 1 1 auto;
    min-width: 0;
}

.u-info-list .u-info-row .u-value a {
    margin-left: 12px;
    color: var(--gold);
    font-size: 13px;
}

.u-info-list .u-info-row .u-value .u-gray {
    color: var(--muted-2);
}

.u-avatar-box {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 4px 0 24px;
}

.u-avatar-box .u-avatar {
    width: 92px;
    height: 92px;
    flex: 0 0 92px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid rgba(216, 167, 91, .45);
    box-shadow: 0 12px 26px rgba(0, 0, 0, .45);
}

.u-avatar-box .u-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.u-avatar-upload,
.u-avatar-box .u-avatar-upload {
    position: relative;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    height: 34px;
    padding: 0 16px;
    border: 1px solid rgba(216, 167, 91, .4);
    border-radius: 9px;
    background: rgba(216, 167, 91, .07);
    color: var(--gold);
    font-size: 13px;
    cursor: pointer;
}

.u-avatar-upload input[type="file"],
.u-avatar-box .u-avatar-upload input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
    font-size: 0;
}

.u-subtitle {
    margin: 0 0 16px;
    padding-left: 11px;
    border-left: 3px solid var(--gold);
    color: var(--paper);
    font-family: var(--font-serif);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 1px;
    line-height: 1.2;
}

.u-tabs {
    display: flex;
    align-items: center;
    gap: 26px;
    padding: 0 28px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 18px;
}

.u-tabs a {
    padding: 0;
    margin: 0;
    line-height: 52px;
    font-size: 14.5px;
    color: var(--muted);
    border-bottom: 2px solid transparent;
}

.u-tabs a.current {
    color: var(--gold-2);
    border-bottom-color: var(--gold);
    font-weight: 500;
}

.u-empty {
    padding: 72px 0 36px;
    text-align: center;
    color: var(--muted-2);
    font-size: 14px;
}

.u-empty img {
    width: 150px;
    margin: 0 auto 16px;
    display: block;
}

.u-empty a {
    color: var(--gold);
}

/* cards / task / invite */
.u-task-list,
.u-sign {
    margin-left: 28px;
    margin-right: 28px;
}

.u-task {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 20px;
    margin-bottom: 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255,255,255,0.02);
}

.u-task .u-task-info h3 {
    margin: 0 0 4px;
    font-family: var(--font-serif);
    font-size: 15.5px;
    color: var(--paper);
}

.u-task .u-task-info p {
    margin: 0;
    color: var(--muted-2);
    font-size: 12.5px;
}

.u-task .u-task-reward {
    color: var(--gold);
    font-size: 13.5px;
    white-space: nowrap;
}

.u-task .u-task-btn {
    height: 32px;
    padding: 0 16px;
    border: 1px solid rgba(216, 167, 91, .35);
    border-radius: 16px;
    background: rgba(216, 167, 91, .1);
    color: var(--gold-2);
    font-size: 12.5px;
    cursor: pointer;
}

.u-task .u-task-btn:hover {
    background: rgba(216, 167, 91, .18);
}

.u-task .u-task-btn.done {
    border-color: transparent;
    background: rgba(255,255,255,0.05);
    color: var(--muted-2);
    cursor: default;
}

.u-task .u-task-btn.link {
    border-color: var(--line-2);
    background: transparent;
    color: var(--paper-2);
}

.u-sign {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 24px;
    margin-bottom: 22px;
    border: 1px solid rgba(216, 167, 91, .22);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(216, 167, 91, .12), rgba(216, 167, 91, .02));
}

.u-sign .u-sign-title {
    font-family: var(--font-serif);
    font-size: 18px;
    letter-spacing: 1.5px;
    color: var(--gold-2);
}

.u-sign .u-sign-days {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.u-sign .u-sign-days span {
    width: 62px;
    padding: 6px 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: rgba(255,255,255,0.04);
    color: var(--muted);
    font-size: 11.5px;
    text-align: center;
    line-height: 1.5;
}

.u-sign .u-sign-days span.on {
    border-color: transparent;
    background: var(--grad-gold);
    color: #201704;
    font-weight: 600;
}

.u-sign .u-sign-btn {
    height: 40px;
    padding: 0 26px;
    border: 0;
    border-radius: 20px;
    background: var(--grad-gold);
    color: #201704;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
}

.u-sign .u-sign-btn.done {
    background: rgba(255,255,255,0.06);
    color: var(--muted-2);
    cursor: default;
}

.u-invite-banner {
    margin: 0 28px 22px;
    padding: 26px 28px;
    border: 1px solid rgba(216, 167, 91, .18) !important;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(216, 167, 91, .1), rgba(138, 169, 232, .05)) !important;
}

.u-invite-banner h3 {
    margin: 0 0 8px;
    font-family: var(--font-serif);
    font-size: 21px;
    letter-spacing: 1px;
    color: var(--gold-2) !important;
}

.u-invite-banner p {
    margin: 0;
    color: var(--paper-2) !important;
    font-size: 13.5px;
    line-height: 1.9;
}

.u-invite-code {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 16px;
    flex-wrap: wrap;
}

.u-invite-code input {
    width: 300px;
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--line-2) !important;
    border-radius: 10px;
    background: rgba(7, 9, 13, .45) !important;
    color: var(--gold) !important;
    font-size: 14px;
    letter-spacing: 1px;
}

.u-invite-code .u-btn {
    height: 40px;
    padding: 0 20px;
    border: 0;
    border-radius: 10px;
    background: var(--grad-gold);
    color: #201704;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
}

.u-card-list {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    padding: 0 28px 20px;
}

.u-card-list .u-bank-card {
    position: relative;
    width: 300px;
    padding: 20px;
    border: 1px solid rgba(216, 167, 91, .22) !important;
    border-radius: 14px;
    background: linear-gradient(135deg, #2a2418, #171d27) !important;
    box-shadow: 0 18px 36px rgba(0, 0, 0, .45) !important;
}

.u-card-list .u-bank-card .bank {
    margin-bottom: 12px;
    color: var(--gold-2) !important;
    font-size: 14px;
}

.u-card-list .u-bank-card .no {
    margin-bottom: 12px;
    color: var(--paper) !important;
    font-size: 19px;
    letter-spacing: 2px;
}

.u-card-list .u-bank-card .owner {
    color: var(--muted) !important;
    font-size: 12.5px;
}

.u-card-list .u-bank-card .del {
    position: absolute;
    right: 18px;
    bottom: 18px;
    color: var(--muted-2) !important;
    font-size: 12.5px;
}

.u-card-list .u-bank-card .del:hover {
    color: var(--danger) !important;
}

.u-card-list .u-bank-card .state {
    position: absolute;
    right: 18px;
    top: 18px;
    padding: 2px 9px;
    border-radius: 10px;
    background: rgba(255,255,255,0.08);
    color: var(--muted);
    font-size: 11px;
}

.wd-box {
    margin: 4px 28px 18px;
    padding: 22px 24px;
    border: 1px solid var(--line) !important;
    border-radius: 14px;
    background: rgba(255,255,255,0.02) !important;
}

.wd-box .wd-line {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
    color: var(--paper-2);
    font-size: 13.5px;
}

.wd-box .wd-amount {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 6px 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px dashed rgba(255,255,255,0.07);
}

.wd-box .wd-amount input {
    flex: 1 1 auto;
    height: 52px;
    border: 0;
    background: transparent;
    color: var(--gold) !important;
    font-family: var(--font-serif);
    font-size: 30px;
    font-weight: 600;
    outline: none;
}

.wd-box .wd-amount .unit {
    color: var(--muted-2);
    font-size: 13px;
}

.wd-box .wd-tip {
    color: var(--muted-2);
    font-size: 12.5px;
}

.wd-box .wd-money {
    color: var(--gold);
    font-family: var(--font-serif);
    font-size: 19px;
    font-weight: 600;
}

.wd-cards {
    padding: 0 28px 24px;
}

.wd-cards .wd-card {
    display: inline-flex;
    flex-direction: column;
    gap: 4px;
    min-width: 250px;
    margin: 0 12px 12px 0;
    padding: 14px 18px;
    border: 1px solid var(--line-2) !important;
    border-radius: 12px;
    background: rgba(255,255,255,0.03) !important;
    cursor: pointer;
}

.wd-cards .wd-card.on {
    border-color: rgba(216, 167, 91, .5) !important;
    box-shadow: 0 0 0 2px rgba(216, 167, 91, .12) !important;
    background: rgba(216, 167, 91, .07) !important;
}

.wd-cards .wd-card .bank {
    color: var(--paper);
    font-size: 14px;
}

.wd-cards .wd-card .no {
    color: var(--muted-2);
    font-size: 13px;
    letter-spacing: 1px;
}

.wd-cards .wd-empty {
    padding: 6px 0 16px;
    color: var(--muted-2);
    font-size: 13.5px;
}

.wd-cards .wd-empty a {
    color: var(--gold);
}

/* coin summary / vip state */
.coin-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin: 0 28px 16px;
    padding: 14px 18px;
    border: 1px solid var(--line) !important;
    border-radius: 12px;
    background: rgba(255,255,255,0.02) !important;
    color: var(--paper-2);
    font-size: 13.5px;
}

.coin-summary b {
    margin-left: 6px;
    color: var(--gold);
    font-family: var(--font-serif);
    font-size: 20px;
}

.coin-summary a {
    color: var(--gold);
}

.vip-state {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 28px 18px;
    padding: 18px 20px;
    border: 1px solid rgba(216, 167, 91, .22) !important;
    border-radius: 12px;
    background: linear-gradient(135deg, rgba(216, 167, 91, .1), rgba(216, 167, 91, .02)) !important;
    color: var(--paper-2) !important;
    font-size: 13.5px;
}

.vip-state .lv {
    color: var(--gold) !important;
    font-family: var(--font-serif);
    font-size: 17px;
}

/* ============================================================
   6. 登录 / 注册 / 搜索 / 资讯 / 举报 / Vip / 支付
   ============================================================ */
.login-page,
.login-container {
    background: transparent;
}

.login-container {
    width: 100%;
    max-width: 420px;
    padding: 38px 34px 34px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
    box-shadow: var(--shadow);
}

.login-form .form-title,
.login-form h2 {
    margin-bottom: 22px;
    font-family: var(--font-serif);
    font-size: 23px;
    letter-spacing: 2px;
    color: var(--paper);
    text-align: center;
}

.login-form .form-group {
    margin-bottom: 16px;
}

.login-form .form-group label {
    display: block;
    margin-bottom: 6px;
    color: var(--muted-2);
    font-size: 12.5px;
    letter-spacing: 1px;
}

.login-form input {
    width: 100%;
    height: 44px;
    padding: 0 14px;
    border: 1px solid var(--line-2);
    border-radius: 11px;
    background: rgba(255,255,255,0.04);
    color: var(--paper);
    font-size: 14px;
}

.login-form input:focus {
    border-color: rgba(216, 167, 91, .5);
    box-shadow: 0 0 0 3px rgba(216, 167, 91, .1);
}

.login-form .submit-btn {
    width: 100%;
    height: 46px;
    margin-top: 10px;
    border: 0;
    border-radius: 11px;
    background: var(--grad-gold);
    color: #201704;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.login-form .submit-btn:hover {
    filter: brightness(1.05);
}

.other-login .divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 24px 0 16px;
    color: var(--muted-2);
    font-size: 12px;
}

.other-login .divider::before,
.other-login .divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--line);
}

.third-buttons,
.third-login {
    display: flex;
    gap: 12px;
    justify-content: center;
}

.third-buttons a,
.third-login a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 38px;
    padding: 0 16px;
    border: 1px solid var(--line-2);
    border-radius: 10px;
    color: var(--paper-2);
    font-size: 13px;
}

.third-buttons a:hover,
.third-login a:hover {
    border-color: rgba(216, 167, 91, .4);
    color: var(--gold-2);
}

/* search */
.seach_box {
    display: flex;
    gap: var(--gap);
    align-items: flex-start;
    margin: 26px auto 0;
    width: var(--maxw);
    max-width: 100%;
}

.seach_box .search_left {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    padding: 22px 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
}

.seach_box .search_right {
    width: 300px;
    flex: 0 0 300px;
}

.seach_box .search_right > div,
.seach_box .search_right .boxcont {
    padding: 18px 20px;
    margin-bottom: 16px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
}

.seach_box .search_right .titmenu {
    display: block;
    margin-bottom: 10px;
    font-family: var(--font-serif);
    font-size: 16px;
    letter-spacing: 1px;
    color: var(--paper);
}

.hot_searchList a,
.seach_box .hot_searchList a {
    display: inline-flex;
    align-items: center;
    height: 28px;
    margin: 0 8px 8px 0;
    padding: 0 12px;
    border-radius: 14px;
    background: rgba(255,255,255,0.04);
    color: var(--paper-2);
    font-size: 12.5px;
}

.hot_searchList a:hover {
    background: rgba(216, 167, 91, .12);
    color: var(--gold-2);
}

.search_top .search_tp span {
    color: var(--gold);
    font-weight: 600;
}

.search_form {
    display: flex;
    align-items: center;
    height: 46px;
    border: 1px solid var(--line-2);
    border-radius: 12px;
    background: rgba(255,255,255,0.04);
    overflow: hidden;
}

.search_form .text {
    flex: 1 1 auto;
    height: 100%;
    padding: 0 15px;
    border: 0;
    background: transparent;
    color: var(--paper);
    font-size: 14px;
    outline: none;
}

.search_form .searchBtn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 100%;
    margin: 0;
    border: 0;
    background: var(--grad-gold);
    cursor: pointer;
}

.seach_box .search_left .search_top .search_tp {
    color: var(--paper-2);
}

/* info / article */
.info .box,
.post-all {
    padding: 26px 30px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
}

.post-title .post-classis {
    color: var(--gold);
    font-size: 13px;
}

.post-title .text {
    font-family: var(--font-serif);
    font-size: 24px;
    letter-spacing: 1px;
    color: var(--paper);
}

.post-info .create-time,
.post-info .read-number {
    color: var(--muted-2);
    font-size: 12.5px;
}

.post-content-info {
    color: var(--paper-2);
    font-size: 14.5px;
    line-height: 2;
}

.post-content-info p {
    margin-bottom: 14px;
}

.boxcont,
.latest-news {
    color: var(--paper-2);
}

.boxcont .titmenu {
    font-family: var(--font-serif);
    font-size: 16px;
    color: var(--paper);
}

.boxlist li a {
    color: var(--paper-2);
}

/* report */
.report_container,
.reportbox,
.report_formbox {
    border-color: var(--line) !important;
    background: rgba(255,255,255,0.03) !important;
    border-radius: 14px;
}

.report_line_ipt,
.report_textbox {
    background: rgba(255,255,255,0.04) !important;
    border: 1px solid var(--line-2) !important;
    color: var(--paper) !important;
    border-radius: 10px;
}

.report_submit {
    background: var(--grad-gold) !important;
    color: #201704 !important;
    border: 0 !important;
    border-radius: 10px !important;
    font-weight: 600;
}

/* vip */
.vip-container {
    max-width: var(--maxw);
    margin: 0 auto;
    padding: 28px 20px 10px;
    background: transparent;
}

.vip-tabs {
    display: flex;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: rgba(255,255,255,0.03);
}

.vip-tab {
    flex: 1;
    padding: 14px 0;
    text-align: center;
    font-family: var(--font-serif);
    font-size: 16px;
    letter-spacing: 2px;
    color: var(--muted);
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
}

.vip-tab.active {
    background: var(--grad-gold);
    color: #201704;
    font-weight: 600;
}

.vip-tab:hover:not(.active) {
    background: rgba(255,255,255,0.05);
    color: var(--paper);
}

.section,
.help-section {
    border: 1px solid var(--line);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
}

.section-title,
.help-title {
    font-family: var(--font-serif);
    font-size: 19px;
    letter-spacing: 1.5px;
    color: var(--paper);
}

.plan {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: rgba(255,255,255,0.02);
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.plan:hover {
    border-color: rgba(216, 167, 91, .35);
}

.plan.selected {
    border-color: rgba(216, 167, 91, .55);
    background: rgba(216, 167, 91, .08);
    box-shadow: 0 16px 34px rgba(216, 167, 91, .12);
}

.plan-title {
    font-family: var(--font-serif);
    font-size: 18px;
    color: var(--paper);
}

.plan-desc {
    color: var(--muted-2);
}

.plan-price {
    color: var(--gold);
    font-family: var(--font-serif);
    font-size: 26px;
    font-weight: 600;
}

.plan-badge {
    background: rgba(216, 167, 91, .14);
    color: var(--gold-2);
    border-radius: 10px;
}

.payment-method,
#paymentMethods a,
.payment-item a {
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: rgba(255,255,255,0.03);
    color: var(--paper-2);
}

.payment-method.selected,
#paymentMethods a.selected,
.payment-item a.selected {
    border-color: rgba(216, 167, 91, .5);
    background: rgba(216, 167, 91, .1);
}

.btn-primary {
    background: var(--grad-gold);
    color: #201704;
    border: 0;
    border-radius: 10px;
    font-weight: 600;
}

.btn-secondary {
    border: 1px solid var(--line-2);
    border-radius: 10px;
    background: transparent;
    color: var(--paper-2);
}

.no-payment {
    border: 1px solid rgba(216, 167, 91, .2);
    border-radius: 10px;
    background: rgba(216, 167, 91, .06);
    color: var(--gold-2);
}

.pay-result .card {
    border: 1px solid var(--line) !important;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01)) !important;
    box-shadow: var(--shadow);
}

.pay-result .card h2 {
    font-family: var(--font-serif);
    letter-spacing: 1px;
    color: var(--paper);
}

.pay-result .card p {
    color: var(--muted);
}

.pay-result .card .btns a {
    border-radius: 11px;
    background: var(--grad-gold);
    color: #201704;
}

.pay-result .card .btns a.ghost {
    background: transparent;
    border: 1px solid var(--line-2);
    color: var(--paper-2);
}

/* invite landing */
.invite-page {
    padding: 44px 0 60px;
}

.invite-hero {
    padding: 46px 54px;
    border: 1px solid rgba(216, 167, 91, .2);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(216, 167, 91, .12), rgba(138, 169, 232, .06)), rgba(255,255,255,0.02);
}

.invite-hero h1 {
    font-family: var(--font-serif);
    font-size: 34px;
    letter-spacing: 2px;
    color: var(--paper);
}

.invite-hero p {
    color: var(--paper-2);
    font-size: 15px;
    line-height: 1.9;
}

.invite-hero .actions .btn {
    display: inline-flex;
    align-items: center;
    height: 44px;
    padding: 0 30px;
    border-radius: 22px;
    background: var(--grad-gold);
    color: #201704;
    font-size: 14.5px;
    font-weight: 600;
}

.invite-hero .actions .btn.ghost {
    margin-left: 12px;
    background: transparent;
    border: 1px solid rgba(216, 167, 91, .4);
    color: var(--gold-2);
}

.invite-rules {
    margin-top: 34px;
    padding: 28px 34px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: rgba(255,255,255,0.02);
}

.invite-rules h2 {
    margin-bottom: 14px;
    font-family: var(--font-serif);
    font-size: 21px;
    letter-spacing: 1px;
    color: var(--paper);
}

.invite-rules ol {
    padding-left: 20px;
    color: var(--muted);
    font-size: 14px;
    line-height: 2;
}

/* 404 */
.err,
.error-block,
.err-page {
    color: var(--paper-2);
}

/* ============================================================
   7. 组件响应式
   ============================================================ */
@media (max-width: 1320px) {
    .book_rank_list,
    .personal_box,
    .seach_box,
    .box,
    .boxT,
    .vip-container,
    .invite-page {
        width: 100%;
        max-width: 100%;
        padding-left: 18px;
        padding-right: 18px;
    }
}

@media (max-width: 1180px) {
    .grid-view {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .book_rank_list {
        flex-direction: column;
    }

    .book_rank_list .aside {
        width: 100%;
        flex: 1 1 auto;
        padding: 12px;
    }

    .book_rank_list .aside nav {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        gap: 6px;
    }

    .book_rank_list .aside nav .title {
        padding: 4px 8px;
        margin: 0;
        color: var(--gold);
    }

    .book_rank_list .aside nav a {
        margin: 0;
    }

    .personal_box {
        flex-direction: column;
    }

    .personal_box .left_box {
        width: 100%;
        flex: 1 1 auto;
    }

    .personal_box .left_box .personal_author {
        display: none;
    }

    .personal_box .left_box .personal_left {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-wrap: wrap;
        gap: 10px;
        padding: 16px 18px 0;
        text-align: left;
    }

    .personal_box .left_box .personal_left .user_name {
        margin: 0;
        padding: 0;
        border: 0;
        font-size: 18px;
    }

    .personal_box .left_box .personal_left .user_balance {
        margin: 0;
    }

    .personal_box .left_box .personal_left .recharge_btn {
        flex: 1 1 100%;
    }

    .personal_box .left_box .personal_left .recharge_btn a {
        margin-bottom: 4px;
        height: 36px;
        line-height: 36px;
    }

    .personal_box .left_box .personal_list {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        padding: 10px 12px 14px;
        border-top: 0;
    }

    .personal_box .left_box .personal_list a {
        height: 36px;
        padding: 0 12px;
        background: rgba(255,255,255,0.04);
        border-radius: 8px;
    }

    .personal_box .left_box .personal_list .current {
        border-left: 0;
        box-shadow: inset 0 0 0 1px rgba(216, 167, 91, .45);
    }

    .personal_box .left_box .personal_list .current::after {
        content: none;
    }

    .box,
    .boxT,
    .seach_box {
        flex-direction: column;
    }

    .box .rt,
    .boxT .rt,
    .seach_box .search_right {
        width: 100%;
        flex: 1 1 auto;
    }

    .vip-container {
        padding-top: 20px;
    }
}

@media (max-width: 900px) {
    .grid-view {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 14px;
    }

    .filter-box {
        padding: 6px 16px 8px;
    }

    .filter-box .channel-switch > span:first-child,
    .filter-box .category-filter > span:first-child,
    .filter-box .status-filter > span:first-child {
        flex: 0 0 40px;
        padding-top: 6px;
    }

    .bookIntro {
        gap: 18px;
    }

    .bookIntro .bookCover,
    .bookIntro .bookImg {
        width: 140px;
        flex: 0 0 140px;
        height: auto;
    }

    .bookIntro .bookImg {
        height: 188px;
    }

    .bookNm .bkNm {
        font-size: 24px;
        letter-spacing: 1px;
    }

    .bookrack_table,
    .record_table,
    .u-table-wrap {
        padding: 6px 16px 22px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .bookrack_table .table_box,
    .record_table .table_box,
    .u-table-wrap .table_box {
        min-width: 700px;
    }

    .bookrack {
        padding: 18px 16px 14px;
        font-size: 17px;
    }

    .record_top {
        padding: 0 16px;
    }

    .u-wrap {
        padding: 20px 16px 28px;
    }

    .u-form .u-submit-row {
        padding-left: 0;
    }

    .u-tips {
        margin-left: 0;
    }

    .u-task-list,
    .u-sign,
    .u-invite-banner,
    .u-card-list,
    .wd-box,
    .wd-cards,
    .coin-summary,
    .vip-state {
        margin-left: 16px;
        margin-right: 16px;
        padding-left: 16px;
        padding-right: 16px;
    }

    .classify_list .booklist > a {
        width: 100%;
    }

    .book_rank_list .article {
        padding: 18px 16px;
    }

    .invite-hero {
        padding: 30px 24px;
    }

    .invite-hero h1 {
        font-size: 26px;
    }

    .invite-rules {
        padding: 22px 20px;
    }
}

@media (max-width: 640px) {
    .grid-view {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .grid-info {
        padding: 10px 10px 12px;
    }

    .grid-title {
        font-size: 13.5px;
    }

    .grid-meta {
        gap: 6px;
        font-size: 11px;
    }

    .grid-desc {
        font-size: 11.5px;
    }

    .tabList {
        gap: 6px;
    }

    .tabList > a {
        height: 30px;
        padding: 0 12px;
        font-size: 12.5px;
    }

    .tabList .view-mode {
        margin-left: 0;
    }

    .tabList .total {
        margin-left: 0;
        width: 100%;
        padding-top: 4px;
    }

    .filter-box .channel-switch,
    .filter-box .category-filter,
    .filter-box .status-filter {
        flex-direction: column;
        gap: 6px;
        padding: 9px 0;
    }

    .filter-box .channel-switch > span:first-child,
    .filter-box .category-filter > span:first-child,
    .filter-box .status-filter > span:first-child {
        flex: none;
        padding: 0;
    }

    .filter-box a,
    .filter-group a {
        height: 28px;
        padding: 0 12px;
        font-size: 12px;
    }

    .list-view .list-item {
        padding: 12px;
        gap: 12px;
    }

    .list-cover {
        width: 82px;
        height: 110px;
        flex: 0 0 82px;
    }

    .list-title {
        font-size: 15.5px;
    }

    .list-meta {
        gap: 10px;
        font-size: 11.5px;
    }

    .list-desc {
        font-size: 12px;
        -webkit-line-clamp: 2;
    }

    .bookIntro {
        flex-direction: column;
        align-items: flex-start;
    }

    .bookIntro .bookCover,
    .bookIntro .bookImg {
        width: 132px;
        height: 176px;
        flex: none;
    }

    .bookNm .bkNm {
        font-size: 22px;
    }

    .datum {
        gap: 10px;
        margin: 14px 0 18px;
    }

    .datum span em {
        font-size: 16px;
    }

    .readBtn a {
        min-width: 0;
        flex: 1 1 auto;
        padding: 0 14px;
        font-size: 13px;
    }

    .readBtn a.read {
        flex: 1 1 100%;
    }

    .box .lf,
    .boxT .lf,
    .tabTopBox {
        padding: 18px 16px;
    }

    .bookrack_table .table_box,
    .record_table .table_box,
    .u-table-wrap .table_box {
        min-width: 620px;
    }

    .personal_box .left_box .personal_list a {
        height: 34px;
        padding: 0 10px;
        font-size: 13px;
    }

    .personal_box .left_box .personal_list a p {
        font-size: 13px;
    }

    .u-sign {
        flex-direction: column;
        align-items: flex-start;
    }

    .u-sign .u-sign-btn {
        width: 100%;
    }

    .u-sign .u-sign-days span {
        width: 54px;
    }

    .u-invite-code {
        flex-direction: column;
        align-items: stretch;
    }

    .u-invite-code input {
        width: 100%;
    }

    .u-invite-code .u-btn {
        width: 100%;
    }

    .u-form .u-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 6px;
    }

    .u-form .u-row > label {
        width: 100%;
        flex: none;
        margin: 0;
        text-align: left;
    }

    .u-form .u-field {
        width: 100%;
    }

    .u-form input,
    .u-form select,
    .u-form textarea {
        max-width: 100%;
    }

    .u-tabs {
        padding: 0 16px;
        gap: 18px;
        overflow-x: auto;
    }

    .u-tabs a {
        white-space: nowrap;
    }

    .u-card-list .u-bank-card {
        width: 100%;
    }

    .wd-cards .wd-card {
        width: 100%;
        min-width: 0;
        margin-right: 0;
    }

    .vip-tab {
        padding: 12px 0;
        font-size: 14px;
    }

    .invite-hero h1 {
        font-size: 22px;
    }

    .invite-hero .actions {
        flex-wrap: wrap;
        gap: 10px;
    }

    .invite-hero .actions .btn {
        height: 40px;
        padding: 0 22px;
    }

    .invite-hero .actions .btn.ghost {
        margin-left: 0;
    }

    .chapter-list-box a {
        width: 100%;
    }

    .reader-box,
    #Jcontent,
    .read_content {
        font-size: 17px;
        line-height: 1.95;
    }
}

@media (max-width: 420px) {
    .grid-view {
        grid-template-columns: minmax(0, 1fr);
    }

    .grid-cover {
        aspect-ratio: 16 / 10;
    }

    .grid-item {
        display: flex;
    }

    .grid-cover {
        width: 96px;
        aspect-ratio: 3 / 4;
        flex: 0 0 96px;
    }
}
/* ============================================================
   8. 旧栅格重置 & 关键组件修正（加载顺序保证最后生效）
   ============================================================ */

/* ---------- 首页卡片：清掉旧模板的浮动/百分比宽度 ---------- */
.wrap .sectionBox .sectionBox-left .bookBox .booklist a,
.wrap .sectionBox .sectionBox-left .bookBox .boutique .booklist a,
.wrap .sectionBox .sectionBox-left .bookBox .newbookselect .booklist a,
.wrap .sectionBox .sectionBox-left .bookBox .newbookselect .booklist a:nth-child(-n+3),
.wrap .sectionBox .sectionBox-left .bookBox .booklist a:nth-child(3n),
.wrap .sectionBox .sectionBox-left .boutique .booklist a:nth-child(4n) {
    width: 100%;
    margin: 0;
    float: none;
    overflow: visible;
    box-sizing: border-box;
}

/* 首页左侧精选列表文字 */
.hotWrap .bookLink {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.hotWrap .bookIntro {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.hotWrap .bookIntro em {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hotWrap .bookIntro h2 {
    max-width: 100%;
}

.hotWrap .bookIntro span {
    display: -webkit-box;
    height: auto;
    max-height: 42px;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    white-space: normal;
    overflow: hidden;
}

/* ---------- 轮播：宽度交给脚本计算，这里只保证容器自适应 ---------- */
.slidemain .focus-box,
.slidemain .slideBox,
.tonglan:has(.right) .slidemain .focus-box {
    width: 100%;
    height: auto;
    min-height: 322px;
    white-space: normal;
}

.slidemain .slide-track {
    height: auto;
    min-height: 322px;
}

.slidemain .slide-item {
    height: auto;
    min-height: 322px;
    flex: 0 0 auto;
}

/* ---------- 作品详情：hero 两栏 + tab 独占一行 ---------- */
.box .lf > .bookIntro {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    gap: 26px;
    align-items: start;
}

.box .lf > .bookIntro > .bookCover {
    width: 190px;
    max-width: 100%;
}

.box .lf > .bookIntro > div:nth-child(2) {
    min-width: 0;
}

.box .lf > .bookIntro > .tabList {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin: 22px 0 0;
    padding: 0;
    border: 0;
    border-top: 1px solid var(--line);
}

.box .lf > .bookIntro > .tabList span {
    position: relative;
    padding: 16px 2px 4px;
    color: var(--muted);
    font-size: 15px;
    cursor: pointer;
}

.box .lf > .bookIntro > .tabList span em {
    display: none;
}

.box .lf > .bookIntro > .tabList span i {
    font-style: normal;
    color: var(--muted-2);
    font-size: 12.5px;
}

.box .lf > .bookIntro > .tabList span:hover {
    color: var(--paper);
}

.box .lf > .bookIntro > .tabList span.current {
    color: var(--gold-2);
    font-weight: 500;
}

.box .lf > .bookIntro > .tabList span.current::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    border-radius: 2px;
    background: var(--grad-gold);
}

/* 作者侧栏 */
.box .rt .authorInfo h2 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 16px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--line);
    font-size: 16px;
}

.box .rt .authorInfo .author {
    display: flex;
    align-items: center;
    gap: 12px;
}

.box .rt .authorInfo .author img {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--line-2);
}

.box .rt .authorInfo .author span {
    font-family: var(--font-serif);
    font-size: 16px;
    color: var(--paper);
}

.box .rt .authorList {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px dashed rgba(255,255,255,0.06);
}

.box .rt .authorList > div {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 4px;
    border-radius: 10px;
    background: rgba(255,255,255,0.03);
    text-align: center;
}

.box .rt .authorList > div img {
    width: 20px;
    height: 20px;
    opacity: .8;
    filter: invert(1) brightness(1.4);
}

.box .rt .authorList > div span {
    color: var(--muted-2);
    font-size: 11.5px;
}

.box .rt .authorList > div em {
    color: var(--gold);
    font-family: var(--font-serif);
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
}

/* 详情下部面板 */
.boxT .lf,
.boxT .lfO,
.boxT .lfT {
    padding: 24px 28px 28px;
}

.boxT .intro {
    color: var(--muted);
    font-size: 14px;
    line-height: 2;
}

.newChapterBox {
    margin: 22px 0 18px;
}

.newChapterBox .zxzj {
    margin-bottom: 10px;
    color: var(--paper);
    font-family: var(--font-serif);
    font-size: 17px;
    letter-spacing: 1px;
}

.newChapter > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px dashed rgba(255,255,255,0.06);
}

.newChapter > div a {
    color: var(--paper-2);
    font-size: 13.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.newChapter > div a:hover {
    color: var(--gold-2);
}

.newChapter > div em {
    flex: 0 0 auto;
    color: var(--muted-2);
    font-size: 12px;
    font-style: normal;
}

.newChapter .chapterMore {
    color: var(--gold);
}

.boxT h2 {
    margin: 26px 0 14px;
    font-family: var(--font-serif);
    font-size: 18px;
    letter-spacing: 1px;
    color: var(--paper);
}

/* 同类推荐 */
.likeRead {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.likeRead > a {
    display: block;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255,255,255,0.02);
    text-align: center;
    transition: border-color .2s ease, transform .2s ease;
}

.likeRead > a:hover {
    border-color: rgba(216, 167, 91, .3);
    transform: translateY(-2px);
}

.likeRead > a .bookImg {
    width: 100%;
    aspect-ratio: 3 / 4;
    margin: 0 0 8px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--ink-3);
}

.likeRead > a .bookImg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.likeRead > a h3 {
    margin: 0 0 2px;
    font-family: var(--font-serif);
    font-size: 13.5px;
    color: var(--paper);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.likeRead > a span {
    color: var(--muted-2);
    font-size: 11.5px;
}

/* 正文/章节内容 */
.newChaptercontent h3 {
    margin: 20px 0 10px;
    color: var(--paper);
}

.newChaptercontent {
    color: var(--paper-2);
    font-size: 14px;
    line-height: 2;
}

/* ---------- 排行榜：清掉旧浮动 ---------- */
.book_rank_list .article .classify_list .booklist > a,
.book_rank_list .article .classify_list .booklist > a:first-child {
    float: none;
}

.book_ran_list .booklist .bookimg {
    margin: 0;
}

/* ---------- 个人中心：旧表格/浮动重置 ---------- */
.personal_box .left_box .personal_list a {
    float: none;
}

/* ---------- 响应式补充 ---------- */
@media (max-width: 1180px) {
    .likeRead {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .box .lf > .bookIntro {
        grid-template-columns: 140px minmax(0, 1fr);
        gap: 18px;
    }

    .box .lf > .bookIntro > .bookCover {
        width: 140px;
    }

    .likeRead {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .slidemain .focus-box,
    .slidemain .slideBox,
    .slidemain .slide-track,
    .slidemain .slide-item {
        min-height: 220px;
    }
}

@media (max-width: 640px) {
    .box .lf > .bookIntro {
        grid-template-columns: 120px minmax(0, 1fr);
        gap: 14px;
    }

    .box .lf > .bookIntro > .bookCover {
        width: 120px;
    }

    .box .lf > .bookIntro .bookImg {
        height: 160px;
    }

    .box .lf > .bookIntro > .tabList {
        gap: 20px;
        margin-top: 16px;
    }

    .box .lf > .bookIntro > .tabList span {
        padding-top: 12px;
        font-size: 14px;
    }

    .likeRead {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .slidemain .focus-box,
    .slidemain .slideBox,
    .slidemain .slide-track,
    .slidemain .slide-item {
        min-height: 180px;
    }
}

/* ---------- 排行榜侧栏 & 榜单行修正 ---------- */
.book_rank_list .aside nav a {
    height: auto;
    line-height: 1.4;
    padding: 9px 12px;
    border-right: 0;
}

.book_rank_list .article .classify_book .classify_list .booklist > a {
    width: 100%;
    float: none;
}

.classify_list .booklist > a .left {
    flex: 1 1 auto;
    min-width: 0;
}

.classify_list .booklist > a .right {
    flex: 0 0 auto;
    margin-left: 10px;
}

/* ---------- 详情作者数据卡 ---------- */
.box .rt .authorList > div {
    width: auto;
    float: none;
    min-width: 0;
}

/* ---------- 面包屑条收窄 ---------- */
.boxCenter > .clearfix:first-child,
.breadcrumb-bar {
    padding-top: 10px;
    padding-bottom: 10px;
}

/* ---------- 目录面板 ---------- */
.chapter-list-box {
    display: flex;
    flex-wrap: wrap;
    gap: 0 18px;
}

.chapter-list-box a {
    width: calc(50% - 9px);
}

/* ---------- 评论 ---------- */
#comments h2,
.boxT #comments h2 {
    display: flex;
    align-items: center;
    gap: 8px;
}

.comment-card,
.comment-container .comment {
    border-bottom: 1px dashed rgba(255,255,255,0.06);
}

@media (max-width: 640px) {
    .chapter-list-box a {
        width: 100%;
    }
}

/* ---------- 轮播容器宽度强约束（旧样式含 :has 高优先级） ---------- */
.slidemain,
.slidemain .focus-box,
.slidemain .slideBox,
.tonglan:has(.right) .slidemain,
.tonglan:has(.right) .slidemain .focus-box {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0;
}

@media (max-width: 900px) {
    .wrap .tonglan,
    .wrap .tonglan:has(.right) {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100%;
    }

    .slidemain .slide-track {
        width: 100% !important;
        max-width: 100%;
    }
}

/* 防止移动端横向溢出 */
@media (max-width: 720px) {
    #content {
        overflow-x: hidden;
    }

    .thh-inner,
    .thh-search,
    .thh-input {
        min-width: 0;
    }

    .wrap .sectionBox,
    .wrap .sectionBox .sectionBox-left,
    .wrap .sectionBox .sectionBox-right {
        min-width: 0;
        max-width: 100%;
    }

    .wrap .sectionBox .sectionBox-left .bookBox,
    .wrap .sectionBox .sectionBox-right .newbooklist,
    .hotWrap,
    .tonglan .right {
        max-width: 100%;
        overflow: hidden;
    }
}

/* ---------- 取消旧模板的最小宽度锁定（响应式关键） ---------- */
html,
body {
    min-width: 0 !important;
    width: auto;
}

.personal_box,
.personal_box .left_box,
.personal_box .right_box {
    min-width: 0 !important;
}

.boxCenter,
.sectionBox,
.tonglan,
.book_rank_list,
.seach_box,
.box,
.boxT,
.vip-container {
    min-width: 0;
}

@media (max-width: 720px) {
    html,
    body {
        overflow-x: hidden;
    }
}

/* ---------- 移动端头部精简 ---------- */
@media (max-width: 720px) {
    .thh-author,
    .thh-app,
    .thh-lang,
    .thh-login,
    .thh-register {
        display: none !important;
    }

    .thh-actions {
        gap: 0;
    }

    .thh-search {
        flex: 1 1 auto;
        max-width: none;
        min-width: 0;
    }
}

/* ---------- 个人中心头部（移动端） ---------- */
.uh-inner {
    flex-wrap: nowrap;
    gap: 12px;
}

.uh-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.uh-right {
    flex: 0 0 auto;
}

@media (max-width: 720px) {
    .uh-inner {
        height: 58px;
        padding: 0 14px;
        gap: 10px;
    }

    .uh-logo img {
        height: 26px;
    }

    .uh-title {
        padding-left: 10px;
        font-size: 15px;
        letter-spacing: 1px;
    }

    .uh .langswitch-nav,
    .uh-lang {
        display: none !important;
    }

    .uh-back {
        height: 32px;
        padding: 0 10px;
        font-size: 12px;
    }
}

/* ---------- 登录/注册页头部 ---------- */
header.header {
    background: rgba(7, 9, 13, .86) !important;
    border-bottom: 1px solid var(--line) !important;
    backdrop-filter: saturate(160%) blur(16px);
    -webkit-backdrop-filter: saturate(160%) blur(16px);
}

header.header .site-name {
    color: var(--paper) !important;
    font-family: var(--font-serif);
    font-size: 20px;
    letter-spacing: 2px;
}

header.header .home-link,
header.header .header-left .logo + h1 + a {
    color: var(--paper-2) !important;
}

header.header .home-link:hover {
    color: var(--gold-2) !important;
}

/* 默认头像图片在暗色下反色，避免刺眼 */
.personal_author img[src*="data-none"],
.uh-logo img[src*="data-none"],
.u-avatar-box img[src*="data-none"] {
    filter: invert(1) brightness(.92);
    opacity: .9;
}

/* ---------- VIP 页（覆盖页面内联样式） ---------- */
.vip-container {
    background: transparent !important;
}

.vip-tabs {
    background: rgba(255,255,255,0.03) !important;
    border-color: var(--line) !important;
    box-shadow: none !important;
}

.vip-tab {
    background: transparent !important;
    color: var(--muted) !important;
    font-family: var(--font-serif);
    letter-spacing: 2px;
}

.vip-tab.active,
.vip-tabs .vip-tab.active {
    background: var(--grad-gold) !important;
    color: #201704 !important;
    border-color: transparent !important;
}

.section,
.help-section,
.plans-container .plan,
.plan {
    background: rgba(255,255,255,0.02) !important;
    border-color: var(--line) !important;
    box-shadow: none !important;
}

.plan.selected {
    background: rgba(216, 167, 91, .1) !important;
    border-color: rgba(216, 167, 91, .5) !important;
    box-shadow: 0 16px 34px rgba(216, 167, 91, .14) !important;
}

.plan-title {
    color: var(--paper) !important;
}

.plan-price {
    color: var(--gold) !important;
}

.plan-desc {
    color: var(--muted-2) !important;
}

.section-title,
.help-title {
    color: var(--paper) !important;
}

.help-list li,
.help-list span,
.help-list p {
    color: var(--paper-2) !important;
}

.no-payment,
#noPaymentWarning {
    background: rgba(216, 167, 91, .07) !important;
    border-color: rgba(216, 167, 91, .25) !important;
    color: var(--gold-2) !important;
}

.payment-methods .payment-item a,
#paymentMethods a,
.payment-item a {
    background: rgba(255,255,255,0.03) !important;
    border-color: var(--line) !important;
    color: var(--paper-2) !important;
}

.payment-methods .payment-item a.selected,
#paymentMethods a.selected,
.payment-item a.selected {
    background: rgba(216, 167, 91, .1) !important;
    border-color: rgba(216, 167, 91, .5) !important;
}

.vip-container .account-info,
.vip-container .account-box {
    background: rgba(255,255,255,0.02) !important;
    border-color: var(--line) !important;
}

/* 建站语言切换下拉在暗色下的细节 */
.langswitch-menu {
    background: var(--ink-2) !important;
    border-color: var(--line) !important;
}

.langswitch-option {
    color: var(--paper-2) !important;
}

.langswitch-option:hover {
    background: rgba(255,255,255,0.05) !important;
}

.langswitch-option.active {
    color: var(--gold-2) !important;
    background: rgba(216, 167, 91, .1) !important;
}
