:root{--novel-bg: #f4f4f4;--novel-surface: #ffffff;--novel-line: #ededed;--novel-text: #242424;--novel-muted: #8c8c8c;--novel-faint: #b8b8b8;--novel-red: #e6463d;--novel-red-soft: #fff0ef;--novel-ink: #1f1f1f;--novel-reader: #f5f0df;--novel-shadow: 0 2px 10px rgba(15, 15, 15, .08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body.novel-body{min-height:100vh;background:var(--novel-bg);color:var(--novel-text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.5;padding-top:50px;padding-bottom:24px;-webkit-font-smoothing:antialiased;user-select:none;-webkit-user-select:none}input,textarea{user-select:text;-webkit-user-select:text}body.novel-body.has-nav{padding-top:92px}body.novel-reader-body{background:var(--novel-reader);padding-bottom:64px}a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}ul,ol{list-style:none}img{display:block;max-width:100%}.line-1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-2,.line-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.line-2{-webkit-line-clamp:2}.line-3{-webkit-line-clamp:3}.novel-header{position:fixed;top:0;left:0;right:0;z-index:100;height:50px;background:var(--novel-surface);border-bottom:1px solid var(--novel-line);display:flex;align-items:center;justify-content:space-between;padding:0 14px}.novel-header-left,.novel-header-right{display:flex;align-items:center;gap:12px;min-width:0}.novel-header-left{flex:1}.novel-header-right{margin-left:10px}.novel-logo{color:var(--novel-red);font-size:18px;font-weight:800;letter-spacing:.04em}.novel-header-title{min-width:0;color:var(--novel-ink);font-size:16px;font-weight:650}.novel-icon-link,.novel-back-link{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:#555;flex:0 0 auto}.novel-icon,.novel-icon-link svg,.novel-back-link svg{width:22px;height:22px;fill:currentColor}.novel-navigation{position:fixed;top:50px;left:0;right:0;z-index:99;height:42px;overflow-x:auto;background:var(--novel-surface);border-bottom:1px solid var(--novel-line);-webkit-overflow-scrolling:touch}.novel-navigation::-webkit-scrollbar{display:none}.novel-navigation ul{display:flex;align-items:center;height:100%;padding:0 8px;white-space:nowrap}.novel-navigation li{flex:0 0 auto}.novel-navigation a{position:relative;display:block;padding:10px 16px;color:#666;font-size:15px}.novel-navigation li.active a{color:var(--novel-red);font-weight:700}.novel-navigation li.active a:after{content:"";position:absolute;left:50%;bottom:0;width:20px;height:3px;border-radius:999px;background:var(--novel-red);transform:translate(-50%)}.novel-container{padding:10px}.novel-section{margin-bottom:10px;background:var(--novel-surface);border-radius:6px;overflow:hidden}.novel-section-inner{padding:14px}.novel-section-title{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--novel-ink);font-size:18px;font-weight:800}.novel-section-title:before{content:"";width:4px;height:18px;border-radius:99px;background:var(--novel-red)}.novel-subtitle{display:flex;align-items:center;gap:6px;margin:4px 0 10px;color:#666;font-size:14px;font-weight:700}.novel-subtitle:before{content:"";width:3px;height:14px;border-radius:99px;background:var(--novel-red)}.novel-hero-strip{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:6px;-webkit-overflow-scrolling:touch}.novel-hero-strip::-webkit-scrollbar{display:none}.novel-hero-card{flex:0 0 88%;min-height:154px;padding:16px;border-radius:6px;background:linear-gradient(135deg,#2c2c2c 0%,#e6463d 100%);color:#fff;display:flex;gap:12px;align-items:center;scroll-snap-align:start}.novel-hero-card:nth-child(2n){background:linear-gradient(135deg,#283036 0%,#d9792e 100%)}.novel-hero-card:nth-child(3n){background:linear-gradient(135deg,#22322a 0%,#2a9b67 100%)}.novel-hero-cover{width:72px;height:98px;border-radius:4px;flex:0 0 auto;object-fit:cover;background:rgba(255,255,255,.2);box-shadow:0 5px 14px #0000003d}.novel-hero-info{min-width:0}.novel-hero-info .name{font-size:17px;font-weight:800}.novel-hero-info .author,.novel-hero-info .meta,.novel-hero-info .desc{margin-top:4px;font-size:13px;opacity:.86}.novel-cover-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px}.novel-cover-card{min-width:0;text-align:center}.novel-cover{position:relative;aspect-ratio:3 / 4;overflow:hidden;border-radius:5px;background:#ededed;box-shadow:var(--novel-shadow)}.novel-cover img,.novel-cover-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.novel-cover img{object-fit:cover}.novel-cover-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#ececec,#fafafa);color:#c7c7c7;font-size:28px;font-weight:800}.novel-cover-card .name{margin-top:6px;color:var(--novel-ink);font-size:14px;font-weight:650}.novel-cover-card .author{color:var(--novel-muted);font-size:12px}.novel-text-list{border-top:1px solid #f5f5f5}.novel-text-row{display:flex;align-items:center;gap:8px;min-width:0;padding:9px 0;border-bottom:1px solid #f5f5f5;font-size:14px}.novel-text-row:last-child{border-bottom:0}.novel-tag{flex:0 0 auto;padding:1px 6px;border-radius:3px;background:var(--novel-red-soft);color:var(--novel-red);font-size:11px}.novel-text-row .name,.novel-text-row .chapter{flex:1 1 auto;min-width:0}.novel-text-row .author,.novel-text-row .date{flex:0 0 auto;max-width:88px;color:var(--novel-muted);font-size:12px}.novel-book-list{background:var(--novel-surface);border-radius:6px;overflow:hidden}.novel-book-item{display:flex;gap:12px;padding:12px 14px;border-bottom:1px solid #f3f3f3}.novel-book-item:last-child{border-bottom:0}.novel-book-item .cover{width:78px;height:104px;border-radius:4px;object-fit:cover;flex:0 0 auto;background:#ededed;box-shadow:var(--novel-shadow)}.novel-book-item .info{min-width:0;flex:1}.novel-book-item .name{color:var(--novel-ink);font-size:16px;font-weight:700}.novel-book-item .author{margin-top:3px;color:var(--novel-muted);font-size:13px}.novel-book-item .meta{display:flex;gap:7px;align-items:center;margin-top:5px;color:var(--novel-faint);font-size:12px}.novel-book-item .intro{margin-top:5px;color:#666;font-size:13px;line-height:1.52}.novel-state{flex:0 0 auto;padding:0 5px;border-radius:2px;background:var(--novel-red-soft);color:var(--novel-red);font-size:11px}.novel-category-grid,.novel-rank-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.novel-category-tile,.novel-rank-tile{min-height:72px;padding:10px 8px;border-radius:5px;background:#fafafa;border:1px solid #f0f0f0;display:flex;flex-direction:column;justify-content:center;gap:2px}.novel-category-tile .name,.novel-rank-tile .name{color:var(--novel-ink);font-size:14px;font-weight:700}.novel-category-tile .count,.novel-rank-tile .hint{color:var(--novel-muted);font-size:12px}.novel-order{display:flex;gap:0;background:var(--novel-surface);border-bottom:1px solid var(--novel-line)}.novel-order a{flex:1;padding:11px 8px;text-align:center;color:#666;font-size:14px}.novel-order a.current{color:var(--novel-red);font-weight:750}.novel-search-form{display:flex;gap:8px;padding:12px;background:var(--novel-surface)}.novel-search-form input,.novel-form-field{min-width:0;width:100%;border:1px solid var(--novel-line);border-radius:5px;background:#fafafa;color:var(--novel-text);font:inherit;padding:10px 11px;outline:none}.novel-search-form input:focus,.novel-form-field:focus{border-color:var(--novel-red);background:#fff}.novel-button{border:0;border-radius:5px;background:var(--novel-red);color:#fff;font:inherit;font-weight:700;padding:0 16px;cursor:pointer}.novel-placeholder{background:var(--novel-surface);border-radius:6px;padding:22px 16px}.novel-placeholder h1{color:var(--novel-ink);font-size:22px;line-height:1.25}.novel-placeholder p{margin-top:8px;color:#666;font-size:14px}.novel-placeholder-actions{display:flex;gap:8px;margin-top:16px}.novel-placeholder-actions a{flex:1;text-align:center;border-radius:999px;padding:10px 8px;background:var(--novel-red);color:#fff;font-size:14px;font-weight:700}.novel-placeholder-actions a.secondary{background:#f5f5f5;color:var(--novel-red)}.novel-book-intro{display:flex;gap:12px;background:var(--novel-surface);border-radius:6px;padding:14px}.novel-book-intro .cover{width:88px;height:118px;border-radius:5px;object-fit:cover;flex:0 0 auto;background:#ededed;box-shadow:var(--novel-shadow)}.novel-book-intro .cell{min-width:0;flex:1}.novel-book-intro h1{color:var(--novel-ink);font-size:18px}.novel-book-intro .author,.novel-book-intro .type,.novel-book-intro .facts{margin-top:4px;color:#666;font-size:13px}.novel-book-intro .type a{color:var(--novel-red)}.novel-pill-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.novel-pill{padding:1px 8px;border-radius:999px;border:1px solid var(--novel-red);color:var(--novel-red);font-size:11px}.novel-book-actions{display:flex;gap:8px;margin-top:9px}.novel-book-actions a{flex:1;text-align:center;padding:8px 6px;border-radius:999px;font-size:14px;font-weight:700}.novel-book-actions .primary{background:var(--novel-red);color:#fff}.novel-book-actions .secondary{border:1px solid var(--novel-red);color:var(--novel-red)}.novel-desc{color:#666;font-size:14px;line-height:1.75}.novel-chapter-list li{border-bottom:1px solid #f4f4f4}.novel-chapter-list li:last-child{border-bottom:0}.novel-chapter-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;font-size:15px}.novel-chapter-list .chapter-title{min-width:0;flex:1}.novel-chapter-list .chapter-meta{flex:0 0 auto;color:var(--novel-faint);font-size:12px}.novel-reader-nav{display:flex;gap:8px;padding:10px}.novel-reader-nav a,.novel-reader-nav span{flex:1;text-align:center;padding:10px 6px;border-radius:999px;background:var(--novel-surface);color:var(--novel-text);font-size:14px;box-shadow:0 1px 5px #0000000d}.novel-reader-nav .disabled{color:#c7c7c7}.novel-reader-panel{margin:0 10px;overflow:hidden;border-radius:6px;background:var(--novel-surface)}.novel-reader-title{padding:18px 15px 12px;text-align:center;border-bottom:1px solid #f1f1f1}.novel-reader-title h1{color:var(--novel-ink);font-size:20px;line-height:1.35}.novel-reader-title .meta{margin-top:6px;color:var(--novel-muted);font-size:13px}.novel-reader-content{padding:16px 18px 24px;color:#2f2a21;font-size:18px;line-height:1.95;word-break:break-word}.novel-reader-content.is-loading,.novel-reader-content.is-empty,.novel-reader-content.is-error{min-height:180px;display:flex;align-items:center;justify-content:center;color:var(--novel-muted);font-size:15px;text-align:center}.novel-reader-content.is-error{color:var(--novel-red)}.novel-reader-content.is-protected{-webkit-touch-callout:none}.novel-reader-content p{margin-bottom:12px;text-indent:2em}.novel-reader-content.is-protected-fallback p{text-indent:0}.novel-reader-obfuscated-char{font-size:0}.novel-reader-obfuscated-char:after{content:attr(data-glyph);font-size:18px}.novel-bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:100;display:flex;gap:6px;height:52px;padding:7px 10px;background:var(--novel-surface);border-top:1px solid var(--novel-line)}.novel-bottom-bar a,.novel-bottom-bar span{flex:1;border-radius:999px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;color:#555;font-size:14px}.novel-bottom-bar .next{background:var(--novel-red);color:#fff}.novel-bottom-bar .disabled{color:#c7c7c7}.novel-pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 10px 4px}.novel-pagination a,.novel-pagination span{min-width:34px;height:34px;border-radius:5px;background:var(--novel-surface);color:var(--novel-text);display:inline-flex;align-items:center;justify-content:center;padding:0 9px;font-size:14px}.novel-pagination .current{background:var(--novel-red);color:#fff;font-weight:800}.novel-pagination .disabled{color:#c7c7c7}.novel-empty{padding:36px 18px;text-align:center;color:var(--novel-muted);font-size:14px}.novel-footer{padding:20px 12px 28px;text-align:center;color:var(--novel-faint);font-size:12px}.novel-backtop{position:fixed;right:14px;bottom:18px;z-index:80;width:40px;height:40px;border:0;border-radius:50%;background:rgba(0,0,0,.42);color:#fff;display:none;align-items:center;justify-content:center;font-size:18px;cursor:pointer}.novel-backtop.show{display:flex}@media (min-width: 720px){body.novel-body{max-width:520px;margin:0 auto;border-left:1px solid var(--novel-line);border-right:1px solid var(--novel-line)}.novel-header,.novel-navigation,.novel-bottom-bar{left:50%;right:auto;width:520px;transform:translate(-50%)}.novel-hero-card{flex-basis:82%}}.novel-auth-form{background:var(--novel-surface);border-radius:6px;padding:22px 16px}.novel-auth-form .novel-form-field{display:block;width:100%;box-sizing:border-box;margin-bottom:12px;padding:10px 12px;border:1px solid var(--novel-line);border-radius:6px;font-size:15px;font-family:inherit;outline:none;-webkit-appearance:none;background:#fff}.novel-auth-form select.novel-form-field{-moz-appearance:auto;appearance:auto;-webkit-appearance:auto}.novel-auth-form textarea.novel-form-field{resize:vertical}.novel-auth-form .novel-form-field:focus{border-color:var(--novel-red)}.novel-auth-form .novel-button{width:100%;padding:12px 0;margin-top:4px;border:0;border-radius:999px;background:var(--novel-red);color:#fff;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit}.novel-auth-form .novel-form-error{color:var(--novel-red);font-size:13px;margin-bottom:8px;margin-top:-6px}.novel-auth-form .novel-form-footer{text-align:center;margin-top:14px;font-size:14px;color:var(--novel-muted)}.novel-auth-form .novel-form-footer a{color:var(--novel-red);font-weight:600}.novel-flash{font-size:14px;text-align:center;padding:10px 14px}.novel-flash.success{background:#eaf7ea;color:#2e7d32;border-bottom:1px solid rgba(46,125,50,.15)}.novel-bookshelf-item{display:flex;gap:12px;padding:12px;background:var(--novel-surface);border-radius:6px;margin-bottom:10px;align-items:center}.novel-bookshelf-item .novel-bookshelf-info{flex:1;min-width:0}.novel-bookshelf-item .novel-bookshelf-info .name{font-size:15px;font-weight:600;color:var(--novel-ink);display:block;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.novel-bookshelf-item .novel-bookshelf-info .meta{font-size:13px;color:var(--novel-muted);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.novel-bookshelf-item .novel-bookshelf-remove{flex-shrink:0}.novel-bookshelf-item .novel-bookshelf-remove button{border:1px solid var(--novel-line);background:#fff;color:var(--novel-muted);font-size:12px;padding:4px 10px;border-radius:999px;cursor:pointer;font-family:inherit}.novel-book-actions form button.primary{width:100%;border:0;text-align:center;padding:8px 6px;border-radius:999px;font-size:14px;font-weight:700;background:var(--novel-red);color:#fff;cursor:pointer;font-family:inherit}.novel-hot-keywords{display:flex;flex-wrap:wrap;gap:10px;padding:16px}.novel-hot-keyword{display:inline-block;padding:6px 16px;background:var(--novel-surface);border:1px solid var(--novel-line);border-radius:999px;font-size:14px;color:var(--novel-ink);text-decoration:none;transition:background .15s}.novel-hot-keyword:hover{background:var(--novel-red-soft);color:var(--novel-red);border-color:var(--novel-red)}
