:root{--ink:#25262b;--muted:#85858c;--line:#e7e4df;--paper:#fbfaf8;--cream:#f4f0e9;--accent:#b65c42;--accent-dark:#8f3f2d;--green:#687d69;--shadow:0 18px 55px rgba(56,40,29,.08)}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif}button,input{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit}.hidden{display:none!important}.eyebrow{margin:0 0 14px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:2px}.brand-mark{display:grid;place-items:center;width:48px;height:48px;background:var(--accent);color:#fff;font-family:serif;font-size:25px;box-shadow:7px 7px 0 #eaded2}.brand-mark.small{width:34px;height:34px;font-size:18px;box-shadow:none}.login-view{min-height:100vh;display:grid;grid-template-columns:minmax(420px, .9fr) 1.1fr;background:var(--cream)}.login-panel{align-self:center;width:min(390px,calc(100% - 48px));margin:auto;padding:28px 0}.login-panel h1{margin:28px 0 10px;font-family:Georgia,"Songti SC",serif;font-size:42px;font-weight:500;letter-spacing:1px}.login-copy{margin:0 0 38px;color:var(--muted);font-size:14px}.login-panel label{display:block;margin:19px 0;color:#5b5b61;font-size:13px}.login-panel input{display:block;width:100%;padding:14px 0;border:0;border-bottom:1px solid #cbc5be;outline:0;background:transparent;color:var(--ink);font-size:15px}.login-panel input:focus{border-color:var(--accent)}.primary-button{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:30px;padding:15px 18px;background:var(--accent);color:white;font-size:14px;font-weight:600;transition:.2s}.primary-button:hover{background:var(--accent-dark)}.primary-button span{font-size:22px;font-weight:400}.form-error{height:18px;margin:12px 0;color:#a33c35;font-size:12px}.login-aside{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:80px 14%;background:linear-gradient(135deg,#d9c4b3,#cdb7a4);color:#fff}.login-aside span{font-family:Georgia,serif;font-size:110px;line-height:.4;opacity:.55}.login-aside p{max-width:480px;margin:18px 0 22px;font-family:Georgia,"Songti SC",serif;font-size:31px;line-height:1.55}.login-aside small{font-size:13px;letter-spacing:1px;opacity:.85}.app-view{display:flex;min-height:100vh}.sidebar{width:245px;flex:none;display:flex;flex-direction:column;padding:31px 23px 24px;background:#302e2d;color:#fff}.sidebar-brand{display:flex;align-items:center;gap:12px}.sidebar-brand strong{display:block;font-family:Georgia,serif;font-size:15px;font-weight:500}.sidebar-brand span,.sidebar-bottom span{display:block;margin-top:4px;color:#aaa6a2;font-size:9px;letter-spacing:1px}.nav-label{margin:61px 12px 14px;color:#88847f;font-size:10px;letter-spacing:1px}.nav-item{display:flex;align-items:center;gap:12px;width:100%;padding:13px 12px;color:#bbb7b2;text-align:left;font-size:14px}.nav-item.active{background:#4a4541;color:#fff}.nav-icon{font-size:17px}.sidebar-bottom{display:flex;align-items:center;gap:10px;margin-top:auto;padding-top:18px;border-top:1px solid #4a4643}.user-badge{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#d5a486;color:#fff;font-weight:600}.sidebar-bottom strong{font-size:12px;font-weight:500}.sidebar-bottom button{margin-left:auto;color:#aaa;font-size:20px}.main-content{min-width:0;flex:1}.topbar{height:76px;display:flex;align-items:center;padding:0 5vw;border-bottom:1px solid var(--line);color:#777;font-size:12px}.breadcrumb span{margin:0 9px;color:#c4c0bc}.topbar-right{margin-left:auto;color:#999}.status-dot{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:#7c9b79}.icon-button{display:none}.page-shell{max-width:1200px;margin:0 auto;padding:58px 5vw 80px}.page-heading,.reader-header{display:flex;align-items:flex-end;justify-content:space-between}.page-heading h2,.reader-header h2{margin:0;font-family:Georgia,"Songti SC",serif;font-size:39px;font-weight:500}.page-heading p:not(.eyebrow){margin:13px 0 0;color:var(--muted);font-size:14px}.outline-button{padding:10px 15px;border:1px solid #d6d1ca;color:#65615d;font-size:12px}.outline-button:hover{border-color:var(--accent);color:var(--accent)}.novel-card{position:relative;display:flex;gap:37px;margin-top:48px;padding:38px;background:#fff;box-shadow:var(--shadow)}.book-cover{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:194px;height:274px;background:#ae624c;color:#f8ede1;box-shadow:11px 11px 0 #e6d8cd;overflow:hidden}.book-cover:before{content:"";position:absolute;inset:17px;border:1px solid rgba(255,255,255,.5)}.book-cover span{z-index:1;font-family:"Songti SC",serif;font-size:25px;line-height:1.7;letter-spacing:5px;text-align:center}.book-cover i{position:absolute;right:27px;bottom:26px;font-style:normal;font-size:23px}.novel-info{padding:7px 0;max-width:590px}.tag-row{display:flex;gap:8px}.tag{padding:5px 9px;background:#f1efeb;color:#777;font-size:11px}.tag.warm{background:#f5e4d9;color:var(--accent)}.novel-info h3{margin:22px 0 14px;font-family:Georgia,"Songti SC",serif;font-size:32px;font-weight:500}.novel-desc{max-width:570px;color:#777;line-height:1.9;font-size:14px}.novel-stats{display:flex;gap:46px;margin:29px 0 27px;padding-top:19px;border-top:1px solid var(--line)}.novel-stats strong,.novel-stats span{display:block}.novel-stats strong{font-family:Georgia,serif;font-size:22px;font-weight:500}.novel-stats span{margin-top:5px;color:#999;font-size:11px}.compact{width:157px;margin:0}.novel-mark{position:absolute;right:38px;top:36px;color:var(--green);font-size:11px}.recent-heading{display:flex;align-items:center;margin-top:58px}.recent-heading h3{margin:0;font-family:Georgia,serif;font-size:20px;font-weight:500}.recent-heading span{margin-left:auto;color:#aaa;font-size:12px}.recent-row{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:17px}.recent-item{padding:18px;background:#f3f0eb;border-left:3px solid #c17c63}.recent-item small{color:#a48778;font-size:10px}.recent-item strong{display:block;margin-top:8px;font-family:Georgia,"Songti SC",serif;font-weight:500;font-size:15px}.reader-header{align-items:center}.back-button{color:#777;font-size:13px}.reader-header .eyebrow{margin-bottom:9px}.reader-header h2{font-size:27px}.reader-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:36px;margin-top:39px}.contents-panel{border-top:2px solid var(--ink)}.contents-top{display:flex;align-items:center;justify-content:space-between;padding:18px 0 14px}.contents-top h3{margin:0;font-family:Georgia,serif;font-size:19px;font-weight:500}.contents-top span{color:#aaa;font-size:11px}.filter-tabs{display:flex;border-bottom:1px solid var(--line)}.filter-tab{padding:0 0 12px;margin-right:18px;color:#aaa;font-size:11px}.filter-tab.active{color:var(--accent);border-bottom:2px solid var(--accent)}.contents-list{max-height:65vh;overflow:auto;padding:9px 4px 10px 0}.content-item{display:flex;gap:9px;width:100%;padding:10px 7px;text-align:left;color:#777;font-size:12px;line-height:1.5}.content-item:hover{background:#f3f0eb;color:var(--accent)}.content-item.active{background:#eee8e1;color:var(--accent);font-weight:600}.item-kind{flex:none;width:34px;height:18px;padding-top:2px;background:#e5dfd8;color:#9b938c;text-align:center;font-size:9px}.content-item.active .item-kind{background:#d9ad99;color:#fff}.reading-panel{min-width:0;background:#fff;box-shadow:var(--shadow);padding:39px 8%;min-height:650px}.reading-meta{padding-bottom:23px;border-bottom:1px solid var(--line);color:var(--accent);font-size:11px;letter-spacing:1px}.reading-content{padding:27px 0;color:#4c4a49;font-family:"Songti SC","STSong",serif;font-size:16px;line-height:2.05}.reading-content h1,.reading-content h2{margin:0 0 28px;color:var(--ink);font-family:Georgia,"Songti SC",serif;font-weight:500}.reading-content h1{font-size:29px}.reading-content h2{font-size:21px}.reading-content p{margin:0 0 15px;text-indent:2em;white-space:pre-wrap}.reading-content p.no-indent{text-indent:0}.reading-content ul{padding-left:2em}.reading-content li{margin:8px 0}.empty-reading{text-align:center;padding:120px 20px;color:#aaa}.empty-reading span{color:#c2836a;font-size:42px}.empty-reading h3{color:#6f6a66;font-family:Georgia,serif;font-weight:500}.empty-reading p{font-family:inherit;font-size:13px}.reader-nav{display:flex;justify-content:space-between;padding-top:20px;border-top:1px solid var(--line);color:#777;font-size:12px}.reader-nav button:hover{color:var(--accent)}
@media(max-width:800px){.login-view{display:block}.login-panel{padding-top:62px}.login-panel h1{font-size:34px}.login-aside{display:none}.sidebar{position:fixed;z-index:4;top:0;bottom:0;left:-260px;transition:.25s}.sidebar.open{left:0}.topbar{height:62px;padding:0 20px}.icon-button{display:block;margin-right:14px;color:#555;font-size:20px}.topbar-right{font-size:10px}.page-shell{padding:35px 20px 50px}.page-heading h2{font-size:32px}.page-heading .outline-button{padding:8px;font-size:0}.page-heading .outline-button:first-letter{font-size:17px}.novel-card{display:block;margin-top:31px;padding:25px}.book-cover{width:142px;height:201px;margin:0 auto 32px}.book-cover span{font-size:20px}.novel-info h3{font-size:27px}.novel-mark{right:25px;top:25px}.novel-stats{gap:18px;justify-content:space-between}.novel-stats strong{font-size:17px}.novel-stats span{font-size:10px}.novel-stats div:last-child strong{font-size:15px}.compact{width:100%}.recent-row{grid-template-columns:1fr}.recent-item:nth-child(n+2){display:none}.reader-header{align-items:flex-start;gap:14px}.reader-header h2{margin-top:3px;font-size:22px}.reader-header .outline-button{display:none}.back-button span{display:none}.reader-layout{display:block;margin-top:27px}.contents-panel{margin-bottom:25px}.contents-list{max-height:245px}.reading-panel{padding:28px 20px;min-height:500px}.reading-content{font-size:16px}.reading-content h1{font-size:25px}.reader-nav{gap:8px}.reader-nav span{display:none}}
