:root, body.theme-white-blue{--bg-deep: #f4f6f9; --bg-card: #ffffff; --text-main: #1e3a8a; --text-dim: #60a5fa; --border-color: #dbeafe; --accent-main: #3b82f6; --accent-active: #2563eb; --theme-accent: #2563eb; --theme-accent-text: #ffffff; --reader-bg: #f8fafc; --reader-text: #263750; --reader-muted: #8290a3;}
body.theme-default{--bg-deep: #080a0d; --bg-card: #0f1217; --text-main: #9fb0c0; --text-dim: #5c6b7a; --border-color: #1a1f26; --accent-main: #8a96a3; --accent-active: #d9822b; --theme-accent: #d9822b; --theme-accent-text: #ffffff; --reader-bg: #0b0d10; --reader-text: #b6c0ca; --reader-muted: #647180;}
body.theme-coffee{--bg-deep: #ecdfc8; --bg-card: #f5ecd8; --text-main: #5c4b37; --text-dim: #857059; --border-color: #d8c5a5; --accent-main: #c17a3a; --accent-active: #a15e20; --theme-accent: #c17a3a; --theme-accent-text: #ffffff; --reader-bg: #f1e5ce; --reader-text: #4e4437; --reader-muted: #8b7861;}
body.theme-black-blue{--bg-deep: #000000; --bg-card: #0a0c10; --text-main: #7dd3fc; --text-dim: #0369a1; --border-color: #0c4a6e; --accent-main: #38bdf8; --accent-active: #0ea5e9; --theme-accent: #0ea5e9; --theme-accent-text: #ffffff; --reader-bg: #020406; --reader-text: #9bcce3; --reader-muted: #456f83;}
body.theme-neon-green{--bg-deep: #121214; --bg-card: #1a1a1e; --text-main: #e0e0e6; --text-dim: #666666; --border-color: #2a2a30; --accent-main: #00ff66; --accent-active: #00cc52; --theme-accent: #00ff66; --theme-accent-text: #000000; --reader-bg: #121214; --reader-text: #d2d6d3; --reader-muted: #727873;}
.td-white{background: #3b82f6;}
.td-dark{background: #8a96a3;}
.td-coffee{background: #c17a3a;}
.td-black{background: #38bdf8;}
.td-neon{background: #00ff66;}
*{margin: 0; padding: 0; box-sizing: border-box; scroll-behavior: smooth;}
body{font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; background: var(--bg-deep); color: var(--text-main); line-height: 1.6; transition: background 0.3s, color 0.3s; -webkit-font-smoothing: antialiased;}
a{text-decoration: none; color: inherit;}
button{font: inherit;}
body > header:not(.reader-site-header){background: var(--bg-card); box-shadow: 0 2px 10px rgba(0,0,0,0.05); position: sticky; top: 0; z-index: 100;}
.header-top{display: flex; align-items: center; justify-content: space-between; padding: 12px 5%; max-width: 1400px; margin: 0 auto;}
.logo{font-size: 1.8rem; font-weight: 700; color: var(--theme-accent);}
.logo span{color: var(--text-main);}
.header-right{display: flex; align-items: center; gap: 16px;}
.action-btn{background: none; border: none; color: var(--text-main); font-size: 14px; cursor: pointer; padding: 6px 12px; border-radius: 6px;}
.action-btn:hover{background: var(--border-color);}
.theme-dots{display: flex; gap: 8px;}
.theme-dot{width: 18px; height: 18px; border-radius: 50%; cursor: pointer; border: 2px solid transparent;}
.theme-dot.active{border-color: var(--theme-accent);}
.rating-group{display: flex; background: var(--bg-deep); border-radius: 20px; padding: 4px; border: 1px solid var(--border-color);}
.rating-btn{border: none; background: transparent; color: var(--text-dim); padding: 4px 16px; font-size: 13px; border-radius: 16px; cursor: pointer; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);}
.rating-btn:hover{color: var(--text-main);}
.rating-btn.active{background: var(--theme-accent); color: var(--theme-accent-text); font-weight: 600; box-shadow: 0 2px 6px rgba(0,0,0,0.15);}
.slide-panel{display: none; background: var(--bg-card); border-top: 1px solid var(--border-color); padding: 16px 5%;}
.slide-panel.show{display: block;}
.panel-inner{max-width: 600px; margin: 0 auto;}
.search-box{display: flex; gap: 8px;}
.search-box input{flex: 1; padding: 10px 16px; border: 1px solid var(--border-color); border-radius: 8px; background: var(--bg-deep); color: var(--text-main);}
.search-btn{background: var(--theme-accent); color: var(--theme-accent-text); border: none; padding: 10px 20px; border-radius: 8px; cursor: pointer; font-weight: 500;}
.login-form{display: flex; flex-direction: column; gap: 10px; max-width: 280px; margin: 0 auto;}
.login-form input{padding: 8px 12px; border: 1px solid var(--border-color); border-radius: 6px; background: var(--bg-deep); color: var(--text-main);}
.login-actions{display: flex; gap: 8px;}
.login-actions button{flex: 1; padding: 8px 12px; border-radius: 6px; cursor: pointer; border: none;}
.btn-login-submit{background: var(--theme-accent); color: var(--theme-accent-text);}
.btn-register-submit{background: transparent; color: var(--text-main); border: 1px solid var(--border-color);}
body > header:not(.reader-site-header) nav{background: var(--bg-card); border-top: 1px solid var(--border-color); position: relative; z-index: 300;}
.nav-inner{display: flex; max-width: 1400px; margin: 0 auto; padding: 0 5%; overflow: visible; white-space: normal; position: relative;}
.nav-item{flex-shrink: 0; position: relative;}
.nav-item > a{display: block; padding: 14px 16px; font-weight: 500; white-space: nowrap;}
.nav-item > a:hover, .nav-item > a.active{color: var(--theme-accent);}
.mega-menu-2d{display: none; position: absolute; top: 100%; left: 0; width: 460px; background: var(--bg-card); box-shadow: 0 12px 30px rgba(0,0,0,0.12); border: 1px solid var(--border-color); border-top: none; z-index: 400; border-radius: 0 0 10px 10px; overflow: hidden;}
.nav-item:hover .mega-menu-2d, .nav-item.open .mega-menu-2d{display: flex;}
.mega-left{width: 100px; background: var(--bg-deep); border-right: 1px solid var(--border-color);}
.mega-tab{padding: 14px 0; cursor: pointer; font-size: 14px; color: var(--text-main); text-align: center; border-left: 3px solid transparent;}
.mega-tab:hover, .mega-tab.active{background: var(--bg-card); color: var(--theme-accent); font-weight: 600; border-left-color: var(--theme-accent);}
.mega-right{flex: 1; padding: 16px; background: var(--bg-card);}
.mega-right-title{font-size: 13px; color: var(--text-dim); margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--border-color);}
.mega-content{display: none; grid-template-columns: repeat(3, 1fr); gap: 10px;}
.mega-content.active{display: grid;}
.mega-content a{padding: 8px 0; text-align: center; background: var(--bg-deep); border-radius: 6px; font-size: 13px; border: 1px solid var(--border-color);}
.mega-content a:hover{background: var(--theme-accent); color: var(--theme-accent-text); border-color: var(--theme-accent);}
.container{max-width: 1400px; margin: 0 auto; padding: 40px 5%;}
.topics-section{padding: 30px 0; background: var(--bg-card);}
.topics-section .inner{max-width: 1400px; margin: 0 auto; padding: 0 5%;}
.topics-title{font-size: 1.3rem; margin-bottom: 16px; font-weight: 600;}
.topics-list{display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px;}
.topic-item{background: var(--bg-deep); padding: 12px 16px; border-radius: 8px; font-size: 14px; border: 1px solid var(--border-color);}
.topic-tag{color: var(--theme-accent); font-weight: 600; margin-right: 4px;}
.section-title{font-size: 1.6rem; margin-bottom: 20px; display: flex; align-items: center; justify-content: space-between;}
.channel-badge{display: inline-block; padding: 4px 12px; border-radius: 20px; font-size: 14px; font-weight: 600; margin-right: 8px;}
.badge-female{background: #fce7f3; color: #db2777;}
.badge-male{background: #dbeafe; color: #2563eb;}
.book-grid{display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 24px;}
.book-card{background: var(--bg-card); border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.08); border: 1px solid var(--border-color); transition: transform 0.3s;}
.book-card:hover{transform: translateY(-6px);}
.book-cover{aspect-ratio: 210 / 280; background: var(--bg-deep); display: flex; align-items: center; justify-content: center; overflow: hidden;}
.book-cover img{width: 100%; height: 100%; object-fit: cover;}
.book-info{padding: 14px;}
.book-title{font-weight: 600; margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.book-author{font-size: 13px; color: var(--text-dim); margin-bottom: 6px;}
.book-tags span{background: var(--bg-deep); color: var(--text-dim); font-size: 12px; padding: 2px 8px; border-radius: 4px; margin-right: 4px;}
.content-layout{display: grid; grid-template-columns: 1fr 320px; gap: 40px; margin-top: 40px;}
.ranking-list{background: var(--bg-card); border-radius: 12px; padding: 20px; border: 1px solid var(--border-color);}
.rank-item{display: flex; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--border-color); gap: 12px;}
.rank-item:last-child{border: none;}
.rank-num{width: 28px; height: 28px; background: var(--border-color); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; flex-shrink: 0;}
.rank-num.top{background: var(--theme-accent); color: var(--theme-accent-text);}
.rank-title{flex: 1; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.rank-meta{font-size: 12px; color: var(--text-dim); flex-shrink: 0; text-align: right;}
.category-page{padding-top: 32px;}
.category-hero{display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 26px 28px; margin-bottom: 20px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 12px;}
.category-kicker{margin-bottom: 4px; color: var(--theme-accent); font-size: 13px; font-weight: 600;}
.category-hero h1{margin: 0; font-size: 30px; line-height: 1.35;}
.category-hero p{margin: 8px 0 0; color: var(--text-dim); font-size: 14px;}
.category-count{flex-shrink: 0; color: var(--text-dim); font-size: 13px;}
.filter-panel{overflow: hidden; margin-bottom: 20px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 12px;}
.filter-row{display: flex; min-height: 54px; align-items: flex-start; padding: 11px 18px;}
.filter-row + .filter-row{border-top: 1px solid var(--border-color);}
.filter-label{width: 64px; padding-top: 5px; color: var(--text-dim); font-size: 13px; flex-shrink: 0;}
.filter-options{display: flex; flex-wrap: wrap; gap: 7px;}
.filter-options a{padding: 5px 12px; border-radius: 16px; font-size: 13px; transition: .2s ease;}
.filter-options a:hover, .filter-options a.active{background: var(--theme-accent); color: var(--theme-accent-text);}
.category-toolbar{display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 24px 0 14px;}
.sort-tabs{display: flex; flex-wrap: wrap; gap: 18px;}
.sort-tabs a{position: relative; padding: 5px 0; color: var(--text-dim); font-size: 14px;}
.sort-tabs a:hover, .sort-tabs a.active{color: var(--theme-accent);}
.sort-tabs a.active::after{content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--theme-accent);}
.view-tip{color: var(--text-dim); font-size: 12px;}
.novel-list{display: flex; flex-direction: column; gap: 16px;}
.novel-row{display: flex; gap: 24px; padding: 20px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 12px; transition: transform .2s, box-shadow .2s;}
.novel-row:hover{transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,.06);}
.novel-cover{position: relative; width: 150px; aspect-ratio: 210 / 280; flex: 0 0 150px; border-radius: 8px; background: var(--bg-deep); overflow: hidden;}
.novel-cover img{width: 100%; height: 100%; object-fit: cover;}
.finish-ribbon{position: absolute; top: 13px; right: -30px; width: 105px; padding: 4px 0; transform: rotate(45deg); background: var(--theme-accent); color: var(--theme-accent-text); font-size: 11px; font-weight: 700; text-align: center; box-shadow: 0 2px 5px rgba(0,0,0,.16);}
.novel-body{flex: 1; min-width: 0; display: flex; flex-direction: column;}
.novel-head{display: flex; align-items: flex-start; justify-content: space-between; gap: 18px;}
.novel-head h2{margin: 0 0 4px; font-size: 21px;}
.novel-head h2 a:hover{color: var(--theme-accent);}
.novel-author, .novel-update{color: var(--text-dim); font-size: 12px;}
.novel-tags{display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px;}
.novel-tags span, .novel-tags a{padding: 3px 8px; border: 1px solid var(--border-color); border-radius: 4px; background: var(--bg-deep); font-size: 11px; color: var(--text-dim); display: inline-block; transition: all 0.2s ease;}
.novel-tags a:hover{color: var(--theme-accent); border-color: var(--theme-accent); background: var(--bg-card);}
.novel-short{margin: 14px 0 8px; font-size: 14px; font-weight: 600; line-height: 1.7;}
.novel-intro{display: -webkit-box; overflow: hidden; margin: 0; color: var(--text-dim); font-size: 13px; line-height: 1.8; -webkit-box-orient: vertical; -webkit-line-clamp: 3;}
.novel-foot{display: flex; justify-content: space-between; gap: 18px; margin-top: auto; padding-top: 18px;}
.novel-stats{display: flex; flex-wrap: wrap; color: var(--text-dim); font-size: 12px;}
.novel-stats span + span::before{content: "·"; margin: 0 8px; color: var(--border-color);}
.latest-chapter{max-width: 48%; overflow: hidden; color: var(--theme-accent); font-size: 12px; white-space: nowrap; text-overflow: ellipsis;}
.category-pagination{display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 7px; margin-top: 34px;}
.category-pagination a, .category-pagination span{min-width: 34px; height: 34px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border-color); border-radius: 6px; background: var(--bg-card); font-size: 13px; color: var(--text-dim);}
.category-pagination a:hover, .category-pagination a.active{border-color: var(--theme-accent); background: var(--theme-accent); color: var(--theme-accent-text);}
.category-pagination a.disabled{opacity: .45; pointer-events: none;}
.detail-container{max-width: 1400px; margin: 0 auto; padding: 28px 5% 0;}
.breadcrumb{display: flex; gap: 8px; margin-bottom: 22px; font-size: 13px; color: var(--text-dim);}
.breadcrumb a:hover{color: var(--theme-accent);}
.novel-hero{display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 38px; padding: 28px; background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 14px; box-shadow: 0 4px 14px rgba(0,0,0,.06);}
.detail-cover-wrap{width: 210px; height: 280px;}
.detail-cover{position: relative; width: 100%; height: 100%; border-radius: 10px; overflow: hidden; background: var(--bg-deep); box-shadow: 0 8px 24px rgba(0,0,0,.12);}
.detail-cover img{width: 100%; height: 100%; object-fit: cover;}
.title-line{display: flex; align-items: center; gap: 12px; flex-wrap: wrap;}
.title-line h1{font-size: 2rem; line-height: 1.25;}
.author-line{margin-top: 8px; font-size: 14px; color: var(--text-dim);}
.author-line a:hover{color: var(--theme-accent);}
.short-intro{margin-top: 20px; max-width: 920px; font-size: 15px; line-height: 1.9;}
.meta-chips{display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px;}
.meta-chip{padding: 5px 10px; border-radius: 6px; background: var(--bg-deep); border: 1px solid var(--border-color); color: var(--text-dim); font-size: 12px;}
a.meta-chip:hover{color: var(--theme-accent); border-color: var(--theme-accent); background: var(--bg-card);}
.meta-chip.strong{background: var(--theme-accent); border-color: var(--theme-accent); color: var(--theme-accent-text);}
.novel-stats-detail{display: grid; grid-template-columns: repeat(3, minmax(110px, 1fr)); margin-top: 24px; border: 1px solid var(--border-color); border-radius: 10px; overflow: hidden; background: var(--bg-deep);}
.stat-item{padding: 14px 16px; border-right: 1px solid var(--border-color);}
.stat-item:last-child{border-right: none;}
.stat-item strong{display: block; font-size: 17px;}
.stat-item span{display: block; margin-top: 2px; font-size: 12px; color: var(--text-dim);}
.roles-row{display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 18px; font-size: 13px;}
.roles-row .label{color: var(--text-dim); margin-right: 4px;}
.roles-row span:not(.label){padding: 3px 8px; border-radius: 4px; background: var(--bg-deep);}
.latest-box{margin-top: 20px; padding: 13px 15px; display: flex; justify-content: space-between; align-items: center; gap: 16px; border-left: 3px solid var(--theme-accent); background: var(--bg-deep); border-radius: 0 8px 8px 0;}
.latest-label{margin-right: 10px; font-size: 12px; color: var(--text-dim);}
.latest-time{flex-shrink: 0; font-size: 12px; color: var(--text-dim);}
.detail-actions{display: flex; gap: 12px; margin-top: 22px;}
.primary-btn, .secondary-btn{min-width: 120px; padding: 10px 18px; border-radius: 8px; font-size: 14px; font-weight: 600; text-align: center; cursor: pointer; border: 1px solid transparent;}
.primary-btn{background: var(--theme-accent); color: var(--theme-accent-text); border-color: var(--theme-accent);}
.secondary-btn{background: transparent; color: var(--text-main); border-color: var(--border-color);}
.detail-grid{display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; margin-top: 24px;}
.detail-card{background: var(--bg-card); border: 1px solid var(--border-color); border-radius: 12px; padding: 24px;}
.detail-section-title{font-size: 1.25rem; font-weight: 700;}
.intro-text{margin-top: 16px; font-size: 15px; line-height: 2;}
.info-list div{display: flex; justify-content: space-between; padding: 11px 0; border-bottom: 1px solid var(--border-color); font-size: 13px;}
.info-list span{color: var(--text-dim);}
.info-list b{font-weight: 500; text-align: right;}
.info-list b a{transition: color 0.2s ease;}
.info-list b a:hover{color: var(--theme-accent);}
.chapter-head{display: flex; align-items: center; justify-content: space-between;}
.chapter-sub{margin-top: 3px; font-size: 12px; color: var(--text-dim);}
.sort-btn{padding: 6px 11px; border: 1px solid var(--border-color); border-radius: 6px; background: var(--bg-deep); cursor: pointer;}
.chapter-list{display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 28px; margin-top: 18px;}
.chapter-list a{padding: 12px 4px; border-bottom: 1px solid var(--border-color); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.collapse-wrap{position: relative;}
.collapse-content{overflow: hidden;}
.collapse-content.intro-content.is-collapsed{display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 9;}
.collapse-content.chapter-content.is-collapsed{max-height: 600px;}
.collapse-mask{position: absolute; bottom: 0; left: 0; right: 0; height: 90px; background: linear-gradient(to bottom, rgba(255,255,255,0), var(--bg-card)); pointer-events: none; opacity: 0; transition: opacity 0.3s ease;}
.is-collapsed + .collapse-mask{opacity: 1;}
.collapse-toggle{display: none; text-align: center; margin-top: 15px; position: relative; z-index: 2;}
.collapse-toggle button{background: var(--bg-deep); color: var(--text-main); border: 1px solid var(--border-color); padding: 8px 30px; border-radius: 20px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.2s ease;}
.collapse-toggle button:hover{color: var(--theme-accent); border-color: var(--theme-accent); background: var(--bg-card);}
.intro-text{white-space: pre-wrap;}
.font-14{font-size: 14px !important;}
.btn-disabled{opacity: 0.5; cursor: not-allowed; pointer-events: none;}
.chapter-list.reverse-sort{flex-direction: column-reverse !important;}
.reader-site-header{position: sticky; top: 0; z-index: 50; background: color-mix(in srgb, var(--bg-card) 94%, transparent); border-bottom: 1px solid var(--border-color); backdrop-filter: blur(12px);}
.reader-site-header__inner{width: min(1400px, calc(100% - 48px)); height: 64px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between;}
.reader-brand{font-size: 24px; font-weight: 750; color: var(--theme-accent);}
.reader-brand span{color: var(--text-main);}
.reader-pc-nav{display: flex; gap: 28px; color: var(--text-dim); font-size: 14px;}
.reader-pc-nav a:hover, .reader-text-btn:hover{color: var(--theme-accent);}
.reader-text-btn{border: 0; background: transparent; color: var(--text-dim); cursor: pointer;}
body.is-reader{background: var(--reader-bg); color: var(--reader-text); transition: background-color .25s ease, color .25s ease;}
.reader-article{width: min(820px, calc(100% - 48px)); margin: 0 auto; padding: 68px 0 80px;}
.reader-chapter-header{margin-bottom: 48px;}
.reader-chapter-header h1{font-size: clamp(28px, 3vw, 38px); margin: 0 0 15px; color: var(--reader-text);}
.reader-chapter-meta{display: flex; gap: 0; color: var(--reader-muted); font-size: 13px;}
.reader-chapter-meta > * + *::before{content: "·"; margin: 0 10px; color: var(--border-color);}
.reader-content{--reader-font-size: 19px; --reader-line-height: 1.95; color: var(--reader-text); font-family: "Songti SC", serif; font-size: var(--reader-font-size); line-height: var(--reader-line-height); text-align: justify;}
.reader-content p{margin: 0 0 1.35em; text-indent: 2em;}
.reader-content br + br{display: block; content: ""; margin-top: .8em;}
.reader-end-nav{display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-top: 72px; padding-top: 28px; border-top: 1px solid var(--border-color);}
.reader-end-btn{padding: 16px 18px; border: 1px solid var(--border-color); border-radius: 10px; background: var(--bg-card); transition: transform .2s;}
.reader-end-btn:hover{border-color: var(--theme-accent); transform: translateY(-2px);}
.reader-end-label{display: block; margin-bottom: 5px; color: var(--reader-muted); font-size: 12px;}
.reader-end-btn strong{display: block; color: var(--text-main); font-size: 14px; font-weight: 600; white-space: nowrap; text-overflow: ellipsis; overflow: hidden;}
.reader-end-btn--primary{border-color: color-mix(in srgb, var(--theme-accent) 40%, var(--border-color));}
.reader-end-btn--primary strong{color: var(--theme-accent);}
.reader-overlay{position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,.34); opacity: 0; visibility: hidden; transition: .2s;}
.reader-overlay.is-show{opacity: 1; visibility: visible;}
.reader-settings{position: fixed; z-index: 110; left: 50%; bottom: 28px; width: min(560px, calc(100% - 32px)); padding: 22px; border: 1px solid var(--border-color); border-radius: 16px; background: var(--bg-card); transform: translate(-50%, calc(100% + 60px)); opacity: 0; visibility: hidden; transition: transform .25s, opacity .2s;}
.reader-settings.is-show{transform: translate(-50%, 0); opacity: 1; visibility: visible;}
.reader-settings__head{display: flex; justify-content: space-between; margin-bottom: 20px;}
.reader-settings__close{border: 0; background: none; color: var(--theme-accent); cursor: pointer;}
.reader-setting-row{display: flex; align-items: center; justify-content: space-between; min-height: 54px; border-bottom: 1px solid var(--border-color);}
.reader-setting-label{color: var(--text-dim); font-size: 13px; flex: 0 0 42px;}
.reader-font-controls button, .reader-line-controls button{min-width: 62px; height: 34px; border: 1px solid var(--border-color); border-radius: 7px; background: var(--bg-deep); color: var(--text-main); cursor: pointer;}
.reader-font-controls span, .reader-line-controls span{width: 50px; text-align: center; font-size: 13px;}
.reader-themes{display: flex; gap: 14px;}
.reader-theme{border: 0; background: transparent; color: var(--text-dim); font-size: 11px; cursor: pointer; text-align: center;}
.reader-theme i{display: block; width: 30px; height: 30px; margin: 0 auto 4px; border: 2px solid transparent; border-radius: 50%;}
.reader-theme.is-active i{border-color: var(--theme-accent); box-shadow: 0 0 0 2px var(--bg-card) inset;}
.theme-preview--white{background: #f8fafc; box-shadow: inset 0 0 0 1px #dbeafe;}
.theme-preview--dark{background: #0b0d10;}
.theme-preview--coffee{background: #f1e5ce;}
.theme-preview--black{background: #020406; box-shadow: inset 0 0 0 1px #0c4a6e;}
.theme-preview--neon{background: #121214; box-shadow: inset 0 0 0 1px #00ff66;}
.reader-mobile-topbar, .reader-mobile-bottombar{display: none;}
.anti-scrape{width: 100%;}
.anti-scrape p{text-indent: 2em; margin: 0 0 1.35em 0 !important;}
footer{background: #1e293b; color: #94a3b8; padding: 40px 0 20px; margin-top: 60px;}
.footer-inner{max-width: 1400px; margin: 0 auto; padding: 0 5%; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 30px;}
footer a{display: block; margin: 6px 0; color: #94a3b8;}
.copyright{max-width: 1400px; margin: 5px auto 0; padding: 20px 5% 0; text-align: center; font-size: 13px;}
@media (max-width: 900px) {
  .novel-hero{grid-template-columns: 210px minmax(0, 1fr); gap: 24px;}
  .chapter-list{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .novel-stats-detail{grid-template-columns: repeat(3, 1fr);}
  .detail-grid{grid-template-columns: 1fr;}
  .reader-site-header__inner{width: min(100% - 32px, 820px);}
  .reader-pc-nav a:nth-of-type(3), .reader-pc-nav a:nth-of-type(4){display: none;}
}
@media (max-width: 768px) {
  .logo{display: none !important;}
  .header-top{flex-direction: column; gap: 12px; padding: 10px 4%;}
  .header-right{width: 100%; min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 7px; flex-wrap: nowrap; overflow: visible; padding-bottom: 0;}
  .action-btn{flex-shrink: 0; padding: 6px 5px;}
  .theme-dots{flex-shrink: 0; gap: 5px;}
  .theme-dot{width: 15px; height: 15px;}
  .nav-inner{position: static !important; overflow-x: auto !important; white-space: nowrap !important; -webkit-overflow-scrolling: touch;}
  .nav-item{position: static !important;}
  .mega-menu-2d{top: 100%; left: 0; width: 100vw; height: auto;}
  .content-layout{grid-template-columns: 1fr;}
  .book-grid{grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));}
  .rank-item .rank-meta{display: none !important;}
  .category-hero{display: block; padding: 18px;}
  .filter-row{display: block; padding: 12px 14px;}
  .filter-label{margin-bottom: 8px;}
  .sort-tabs{overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none;}
  .novel-row{padding: 13px; min-height: 146px;}
  .novel-cover{width: 92px; flex: 0 0 92px;}
  .novel-tags, .novel-intro, .novel-foot, .novel-update, .view-tip{display: none !important;}
  .reader-site-header{display: none !important;}
  .reader-page{min-height: 100vh; min-height: 100dvh;}
  .reader-article{width: 100%; margin: 0; padding: max(42px, env(safe-area-inset-top)) 20px max(56px, env(safe-area-inset-bottom));}
  .reader-chapter-header{margin-bottom: 34px;}
  .reader-chapter-header h1{font-size: 25px; margin-bottom: 12px; line-height: 1.4;}
  .reader-chapter-meta{font-size: 12px;}
  .reader-chapter-meta span:last-child{display: none;}
  .reader-end-nav{grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 52px; padding-top: 24px;}
  .reader-end-btn{padding: 14px 12px; text-align: center;}
  .reader-end-btn--directory{grid-column: 1 / -1; grid-row: 2;}
  .reader-end-label{display: none;}
  .reader-mobile-topbar{position: fixed; display: flex; z-index: 80; top: 0; left: 0; right: 0; height: calc(56px + env(safe-area-inset-top)); padding: env(safe-area-inset-top) 14px 0; align-items: center; justify-content: space-between; gap: 12px; background: color-mix(in srgb, var(--bg-card) 96%, transparent); border-bottom: 1px solid var(--border-color); box-shadow: 0 4px 18px rgba(0,0,0,.06); transform: translateY(-110%); transition: transform .22s ease; backdrop-filter: blur(12px);}
  .reader-mobile-topbar.is-show{transform: translateY(0);}
  .reader-mobile-icon, .reader-mobile-text{flex: 0 0 46px; font-size: 14px;}
  .reader-mobile-icon{font-size: 22px;}
  .reader-mobile-text{text-align: right;}
  .reader-mobile-title{flex: 1; min-width: 0; text-align: center;}
  .reader-mobile-title strong, .reader-mobile-title span{display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;}
  .reader-mobile-title strong{color: var(--text-main); font-size: 14px;}
  .reader-mobile-title span{margin-top: 1px; color: var(--text-dim); font-size: 10px;}
  .reader-mobile-bottombar{position: fixed; display: grid; z-index: 80; left: 0; right: 0; bottom: 0; grid-template-columns: repeat(3, 1fr); height: calc(58px + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: color-mix(in srgb, var(--bg-card) 96%, transparent); border-top: 1px solid var(--border-color); box-shadow: 0 -4px 18px rgba(0,0,0,.06); transform: translateY(110%); transition: transform .22s ease; backdrop-filter: blur(12px);}
  .reader-mobile-bottombar.is-show{transform: translateY(0);}
  .reader-mobile-bottombar a, .reader-mobile-bottombar button{display: flex; align-items: center; justify-content: center; border: 0; background: transparent; color: var(--text-main); font-size: 14px;}
  .reader-mobile-bottombar button{color: var(--theme-accent); cursor: pointer;}
  .reader-settings{left: 0; right: 0; bottom: 0; width: 100%; padding: 18px 18px calc(18px + env(safe-area-inset-bottom)); border: 0; border-top: 1px solid var(--border-color); border-radius: 16px 16px 0 0; transform: translateY(105%);}
  .reader-settings.is-show{transform: translateY(0);}
  .reader-setting-row{gap: 12px;}
  .reader-themes{flex: 1; justify-content: space-between; gap: 6px;}
  .reader-line-controls{flex: 1; justify-content: flex-end;}
  .reader-line-controls button{min-width: 56px; padding: 0 9px;}
}
@media (max-width: 640px) {
  .detail-container{padding: 18px 4% 0;}
  .novel-hero{display: block; padding: 18px;}
  .detail-cover-wrap{margin: 0 auto 20px;}
  .title-line{justify-content: center; text-align: center;}
  .author-line{text-align: center;}
  .detail-actions{display: grid; grid-template-columns: 1fr 1fr;}
  .chapter-list{grid-template-columns: 1fr;}
}
.mt-50{margin-top: 50px;}
.text-dim{color: var(--text-dim);}
.text-dim:hover{color: var(--theme-accent);}
.w-60{min-width: 60px;}
.w-70{min-width: 70px;}
.badge-gl{background: #f3e8ff; color: #9333ea;}
.badge-nocp{background: #e2e8f0; color: #475569;}
.ranking-list{counter-reset: rank-counter;}
.rank-num::after{counter-increment: rank-counter; content: counter(rank-counter);}
.rank-item:nth-child(-n+3) .rank-num{background: var(--theme-accent); color: var(--theme-accent-text);}
.chapter-meta{max-width: 140px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.search-error-msg{color: #ef4444; font-weight: 600; margin-top: 10px;}
.search-empty{text-align: center; padding: 40px 0;}
.search-pagination{margin-top: 30px;}
.middle-banner-recommend{width: 100%; margin-top: 24px; margin-bottom: 24px; border-radius: 12px; overflow: hidden; background: var(--bg-deep);}
.middle-banner-recommend img, .middle-banner-recommend iframe{width: 100% !important; height: auto !important; display: block;}
.badge-recommend{background: var(--theme-accent); color: var(--theme-accent-text);}
.book-card .finish-ribbon{font-size: 10px; top: 8px; right: -35px;}
.reader-top-recommend{width: 100%; max-width: 400px; margin: 0 auto 30px; border-radius: 8px; overflow: hidden; text-align: center;}
.reader-top-recommend img, .reader-top-recommend iframe{max-width: 100% !important; height: auto !important; display: block; margin: 0 auto;}
.role-hero-content{display: flex; align-items: center; gap: 20px;}
.role-avatar{width: 80px; height: 80px; border-radius: 50%; object-fit: cover; border: 2px solid var(--theme-accent);}
.dmca-container{min-height: 55vh; padding-top: 60px;}
.dmca-detail-card{max-width: 900px; margin: 0 auto; padding: 40px 5%;}
.not-found-wrap {text-align: center;display: flex;flex-direction: column;justify-content: center;align-items: center;min-height: 55vh;}
.not-found-code {font-size: 5rem;color: var(--theme-accent);margin-bottom: 20px;line-height: 1;}
.not-found-title {font-size: 1.5rem;margin-bottom: 16px;}
.not-found-desc {color: var(--text-dim);margin-bottom: 30px;}
.not-found-btn {text-decoration: none;padding: 10px 30px;border-radius: 20px;}
.ranking-page-list {counter-reset: top-rank;}
.ranking-page-list .novel-row {position: relative;}
.ranking-medal {position: absolute; top: -12px; left: -12px; width: 38px; height: 38px;background: var(--bg-card); border: 2px solid var(--border-color);color: var(--text-dim); border-radius: 50%;display: flex; align-items: center; justify-content: center;font-size: 16px; font-weight: 800; z-index: 10;box-shadow: 0 4px 10px rgba(0,0,0,0.08);}
.ranking-medal::after {counter-increment: top-rank;content: counter(top-rank);}
.ranking-page-list .novel-row:nth-child(1) .ranking-medal {background: linear-gradient(135deg, #fbbf24, #f59e0b);color: #fff; border-color: #f59e0b; font-size: 18px;}
.ranking-page-list .novel-row:nth-child(2) .ranking-medal {background: linear-gradient(135deg, #cbd5e1, #94a3b8);color: #fff; border-color: #94a3b8; font-size: 18px;}
.ranking-page-list .novel-row:nth-child(3) .ranking-medal {background: linear-gradient(135deg, #fca5a5, #ef4444);color: #fff; border-color: #ef4444; font-size: 18px;}
.mb-24{margin-bottom: 24px;}
.history-grid-wrap {margin-top: 30px;}
.history-empty {grid-column: 1 / -1;}
.history-chapter-text {color: var(--theme-accent);margin-top: 6px;}