:root{font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#302d29;background:#f5f4f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #b77539;outline-offset:4px}[hidden]{display:none!important}.library-header{height:96px;max-width:1320px;padding:0 44px;margin:auto;display:flex;align-items:center;justify-content:space-between}.library-brand{display:flex;gap:13px;align-items:center;font-size:25px;font-weight:650;letter-spacing:2px}.brand-seal{background:#a96136;color:#fff8ed;font-family:serif;font-size:30px;border-radius:9px;padding:7px 10px}.library-brand small{display:block;font-size:10px;font-weight:400;color:#93867a;letter-spacing:3px;margin-top:5px}.library-header nav{display:flex;align-items:center;gap:25px;font-size:14px;color:#80756b}.manage-entry{border:1px solid #dbb894;border-radius:24px;padding:7px 15px 7px 7px;color:#a75d2d;background:#fffaf4}.manage-entry span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#eed0aa}main{max-width:1232px;margin:0 auto;padding:20px 0 50px}.library-intro{display:flex;align-items:center;justify-content:space-between;padding:40px 50px;border-radius:20px;background:#eae5db;min-height:214px;overflow:hidden}.eyebrow{font-size:12px;color:#86745f;letter-spacing:3px}h1{font-family:"Songti SC",SimSun,serif;font-size:34px;font-weight:500;letter-spacing:3px;margin:18px 0 12px}.library-intro p{font-size:13px;color:#8d8070;letter-spacing:2px}.intro-mark{font-family:SimSun,serif;line-height:1.5;font-size:42px;letter-spacing:15px;color:#b5a68e;transform:rotate(-7deg);padding-right:50px}.shelf-heading{display:flex;align-items:center;justify-content:space-between;margin-top:38px;gap:20px}h2{font-size:24px;margin:0}h2 small{font-size:12px;font-weight:400;color:#999087;margin-left:12px}.search-box{display:flex;align-items:center;gap:10px;background:#eae9e5;border-radius:24px;padding:10px 18px;width:300px;color:#8b837b}.search-box input{border:0;outline:none;background:none;width:100%;font-size:13px}.search-box span{font-size:24px;line-height:1}.shelf-tools{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:24px 0 30px}#categories{display:flex;gap:10px;flex-wrap:wrap}#categories button{background:none;border:0;color:#8b837b;padding:7px 14px;border-radius:18px;white-space:nowrap}#categories button.active{background:#e9ddcc;color:#986132}select{border:0;color:#8b837b;background:transparent;font-size:12px;padding:8px}.book-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:36px 42px}.book-card{border:0;background:none;padding:0;text-align:left;min-width:0;color:inherit}.book-cover{position:relative;aspect-ratio:0.71;background:var(--cover);box-shadow:4px 8px 15px #453a2518;display:flex;flex-direction:column;justify-content:space-between;padding:20px 18px;color:#fff6e7;border-radius:2px 5px 5px 2px;border-left:6px solid #0002;transition:transform .2s,box-shadow .2s;overflow:hidden}.book-card:hover .book-cover{transform:translateY(-5px);box-shadow:4px 12px 22px #453a2530}.cover-category{font-size:9px;letter-spacing:2px;opacity:.7;border-bottom:1px solid #ffffff40;padding-bottom:12px}.cover-title{font-family:SimSun,serif;font-size:22px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.cover-footer{font-size:9px;letter-spacing:3px;opacity:.65}.book-title{font-size:14px;line-height:1.6;margin:14px 0 5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book-meta{font-size:11px;color:#9b9185}.library-footer{text-align:center;font-size:11px;letter-spacing:3px;color:#b2a79a;padding-top:70px}#library-status{color:#918575;text-align:center;padding:40px}.reader-toolbar{position:sticky;top:0;background:#f5f4f1ed;backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 30px;border-bottom:1px solid #d8cdbc;z-index:4}.reader-toolbar strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reader-toolbar div{display:flex;gap:8px;flex-shrink:0}.reader-toolbar button,.reader-footer button{border:0;background:none;color:inherit;padding:10px;font-size:13px}#reader-page{max-width:820px;min-height:65vh;margin:30px auto;padding:45px 65px;background:#fffcf6;font-family:"Songti SC",SimSun,serif;font-size:20px;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere;box-shadow:0 8px 40px #65513407}#reader-page h2{font-family:inherit;font-size:1.25em;line-height:1.6;margin-bottom:30px}#reader-page a{display:inline-block;font-family:sans-serif;font-size:16px;color:#aa6938;text-decoration:underline}.reader-footer{position:sticky;bottom:0;background:#f5f4f1ed;display:flex;align-items:center;justify-content:center;gap:35px;padding:10px;border-top:1px solid #ddd3c6;color:#8a7865;font-size:12px}#page-number{width:55px;border:1px solid #d8cdbc;border-radius:5px;background:transparent;color:inherit;padding:5px}#reader-contents{position:fixed;top:160px;bottom:65px;left:20px;width:230px;background:#fffaf2;overflow:auto;z-index:5;padding:15px;box-shadow:0 8px 30px #0002;border-radius:10px}#reader-contents button{display:block;border:0;background:none;width:100%;text-align:left;padding:12px;color:inherit;font-size:13px}#reader-contents button.active{background:#eee0cd}.night{background:#222320;color:#ccc7bb}.night #reader-page{background:#292a26}.night .reader-toolbar,.night .reader-footer,.night #reader-contents{background:#222320;color:#ccc7bb}.night .library-header{background:#222320}@media(max-width:1320px){main{padding:20px 44px 50px}.book-grid{gap:30px}}@media(max-width:1000px){.book-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.library-header{padding:0 28px}main{padding:15px 28px 40px}.intro-mark{padding-right:0}.reader-toolbar{padding:10px}#reader-page{margin:20px auto;padding:35px;max-width:90%}}@media(max-width:600px){.library-header{height:82px;padding:0 20px}.library-brand{font-size:20px;gap:8px}.brand-seal{font-size:25px;padding:6px 8px}.library-brand small{font-size:8px;letter-spacing:1px}.library-header nav{gap:10px;font-size:11px}.manage-entry{padding:5px 8px}.manage-entry span{display:none}main{padding:8px 20px 35px}.library-intro{min-height:160px;padding:25px 23px;border-radius:16px}h1{font-size:23px;letter-spacing:1px}.eyebrow{font-size:9px;letter-spacing:1px}.library-intro p{font-size:11px}.intro-mark{font-size:27px;letter-spacing:5px}.shelf-heading{margin-top:28px;flex-wrap:wrap}.search-box{order:2;width:100%}h2{font-size:22px}.shelf-tools{margin:18px 0 22px;align-items:flex-start}#categories{flex-wrap:nowrap;overflow:auto;gap:2px;max-width:80%}#categories button{font-size:12px;padding:7px 11px}.shelf-tools select{max-width:88px;padding:7px 0}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:27px 17px}.book-cover{padding:11px 9px;border-left-width:4px}.cover-title{font-size:15px;line-height:1.5;-webkit-line-clamp:4}.cover-category{font-size:7px;letter-spacing:0;padding-bottom:7px}.cover-footer{font-size:7px;letter-spacing:1px}.book-title{font-size:12px;margin-top:10px}.book-meta{font-size:10px}.reader-toolbar{flex-wrap:wrap;gap:3px}.reader-toolbar strong{max-width:65%;order:0}.reader-toolbar div{width:100%;justify-content:flex-end}.reader-toolbar button{padding:8px}#reader-page{max-width:100%;margin:0;padding:28px 24px;min-height:70vh}.reader-footer{gap:20px;padding-bottom:max(10px,env(safe-area-inset-bottom))}#reader-contents{top:175px;left:10px}.library-footer{font-size:9px;letter-spacing:1px}}
/* Keep covers aligned when book titles below them have different line counts. */
.book-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}

/* Reuse the site's account module in the library header. */
.library-header .library-userbar{display:inline-flex;align-items:center;flex:0 0 auto}
.library-header .library-userbar .btn-login{min-height:38px!important;padding:7px 16px!important;border-radius:20px!important;background:var(--paper,#fff)!important;color:var(--ink,#176a5e)!important;border:1px solid var(--line,#c9e4dc)!important;font-size:13px!important;font-weight:600!important}
.library-header .library-userbar .user-menu-panel{top:calc(100% + 9px);right:0;transform:none}
@media(max-width:600px){.library-header .library-userbar .btn-login{min-height:34px!important;padding:6px 11px!important}.library-header nav{gap:7px}.library-header nav>a:not(.manage-entry){display:none}}

/* 书目卡片：线装书封面（纯 CSS 绘制，无图片资源） */
.work-cover{--cover-span:150px;--title-max:28px;position:relative;display:grid;grid-template-columns:100%;grid-template-rows:100%;justify-items:center;align-items:start;container-type:size;padding:0;border-left:0;border-radius:2px 6px 6px 2px;background:var(--cover);color:#f3ead6;box-shadow:inset 0 0 0 1px rgba(58,44,26,.20),inset 0 1px 0 rgba(255,255,255,.22),2px 3px 5px rgba(58,44,26,.20),9px 16px 26px rgba(58,44,26,.22)}
.work-cover::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background-image:linear-gradient(90deg,rgba(0,0,0,.30) 0 13px,transparent 13px),repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,rgba(0,0,0,.06) 0 1px,transparent 1px 6px),radial-gradient(120% 70% at 22% 12%,rgba(255,255,255,.20),transparent 62%),radial-gradient(95% 65% at 88% 90%,rgba(0,0,0,.28),transparent 66%)}
.work-cover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:58%;border-radius:inherit;pointer-events:none;background-image:radial-gradient(52% 88% at 16% 100%,rgba(255,255,255,.14),transparent 70%),radial-gradient(44% 76% at 44% 100%,rgba(0,0,0,.22),transparent 72%),radial-gradient(60% 96% at 78% 100%,rgba(255,255,255,.10),transparent 70%)}
.work-binding{--cord:rgba(243,234,214,.45);--arm:rgba(243,234,214,.8);--knot:rgba(255,250,238,.95);--wire:clamp(1px,.62cqw,2px);--stitch:clamp(1.5px,.95cqh,3.5px);--kn:clamp(1px,.8cqw,2.5px);position:absolute;left:0;top:0;bottom:0;width:9.8%;z-index:1;pointer-events:none;background-image:linear-gradient(90deg,transparent calc(100% - var(--wire)),var(--cord) calc(100% - var(--wire)))}
/* 四道横向针脚：从书口左缘跨过走线，末端略微超出 */
.work-binding::before{content:"";position:absolute;top:0;bottom:0;left:0;right:-.7cqw;background-image:linear-gradient(180deg,transparent 0 7.1%,var(--arm) 7.1% calc(7.1% + var(--stitch)),transparent calc(7.1% + var(--stitch))),linear-gradient(180deg,transparent 0 31.9%,var(--arm) 31.9% calc(31.9% + var(--stitch)),transparent calc(31.9% + var(--stitch))),linear-gradient(180deg,transparent 0 57.5%,var(--arm) 57.5% calc(57.5% + var(--stitch)),transparent calc(57.5% + var(--stitch))),linear-gradient(180deg,transparent 0 86.2%,var(--arm) 86.2% calc(86.2% + var(--stitch)),transparent calc(86.2% + var(--stitch)))}
/* 针脚与走线交点处的线结 */
.work-binding::after{content:"";position:absolute;top:0;bottom:0;left:0;right:-1.4cqw;background-image:radial-gradient(circle var(--kn) at calc(100% - 1.4cqw) 7.6%,var(--knot) 0 58%,transparent 62%),radial-gradient(circle var(--kn) at calc(100% - 1.4cqw) 32.4%,var(--knot) 0 58%,transparent 62%),radial-gradient(circle var(--kn) at calc(100% - 1.4cqw) 58%,var(--knot) 0 58%,transparent 62%),radial-gradient(circle var(--kn) at calc(100% - 1.4cqw) 86.7%,var(--knot) 0 58%,transparent 62%)}
.work-slip{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;margin-top:9.5cqh;width:21.5cqw;height:62cqh;padding:0 2px;background:linear-gradient(180deg,#faf3e1,#eee1c4);border:1px solid rgba(46,33,16,.62);border-radius:2px;box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 8px 18px rgba(18,12,4,.30)}
.work-slip::after{content:"";position:absolute;inset:3px;border:1px solid rgba(46,33,16,.26);border-radius:1px;pointer-events:none}
.work-cover-title{writing-mode:vertical-rl;text-orientation:upright;font-family:SimSun,"Songti SC",serif;font-weight:600;color:#2b2114;line-height:1;max-height:100%;overflow:hidden;font-size:clamp(9px,min(13.5cqw,calc(52cqh / var(--chars,4))),var(--title-max,28px));letter-spacing:clamp(.02em,calc(calc(52cqh / var(--chars,4)) - 1em),.28em)}
.work-seal{position:absolute;z-index:1;right:13%;bottom:10%;display:grid;place-items:center;width:17px;height:17px;border-radius:2px;background:#a2402e;color:#f7efdc;font-family:SimSun,serif;font-size:10px;line-height:1;box-shadow:0 1px 3px rgba(0,0,0,.35)}
/* 母题底图封面：底图铺满画框，装订线、题签与书苑印记仍由 CSS 叠加 */
.work-cover.has-art{background:#f1eee6}
.work-cover.has-art::before{background-image:linear-gradient(90deg,rgba(58,44,26,.26),rgba(58,44,26,.05) 8%,transparent 12%),radial-gradient(120% 70% at 24% 8%,rgba(255,255,255,.34),transparent 60%)}
.work-cover.has-art::after{top:0;height:auto;background-image:linear-gradient(90deg,transparent calc(100% - 7px),rgba(255,255,255,.62) calc(100% - 7px) calc(100% - 4px),rgba(58,44,26,.32) calc(100% - 4px) calc(100% - 2px),transparent calc(100% - 2px)),linear-gradient(180deg,transparent calc(100% - 6px),rgba(255,255,255,.5) calc(100% - 6px) calc(100% - 3px),rgba(58,44,26,.28) calc(100% - 3px) calc(100% - 1px),transparent calc(100% - 1px))}
.work-cover.has-art .work-binding{--cord:rgba(58,42,22,.34);--arm:rgba(46,32,15,.74);--knot:rgba(24,15,5,.88)}
.cover-art{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;border-radius:inherit}
.has-art .work-seal{display:none}
.cover-imprint{position:absolute;z-index:1;right:9%;bottom:8%;font-family:SimSun,"Songti SC",serif;letter-spacing:1px;color:#4a3d29;opacity:.6;pointer-events:none;font-size:clamp(7px,calc(var(--cover-span)/17),13px)}
.night .work-cover.has-art{background:#2b2c28}
.night .cover-imprint{color:#e6dcc4;opacity:.5}
.work-card .book-title{margin:14px 0 3px;font-size:15px;font-weight:700;color:var(--title-color,#3a2f22)}
.work-card-author{margin-bottom:4px;font-size:11.5px;letter-spacing:.5px;color:var(--muted,#8b837b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 书目详情页 */
.work-detail-inner{max-width:1000px;margin:0 auto;padding:0 4px}
.work-hero{display:flex;gap:36px;align-items:flex-start;padding:36px 40px;border:1px solid var(--line,#dbd3c6);border-radius:20px;background:var(--paper,#fff)}
.work-hero-cover{--cover-span:190px;--title-max:30px;flex:0 0 auto;width:186px}
.work-hero-cover .work-seal{right:11%;bottom:9%;width:22px;height:22px;font-size:13px}
.work-info{flex:1;min-width:0}
.work-info h1{margin-top:4px;font-size:30px;color:var(--title-color,#3a2f22)}
.work-author{margin:0;font-size:13px;letter-spacing:2px;color:var(--muted,#8b837b)}
.work-tags{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.work-tags span{font-size:11px;letter-spacing:1px;color:var(--ink,#a75d2d);background:var(--soft,#f1ece3);border:1px solid var(--line,#dbd3c6);border-radius:14px;padding:4px 12px}
.work-stats{margin:16px 0 0;font-size:12px;letter-spacing:1px;color:var(--muted,#8b837b)}
.work-continue{display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:11px 26px;border-radius:24px;background:var(--ink,#a75d2d);color:#fff8ed;font-size:14px;letter-spacing:2px}
.work-continue:hover{text-decoration:none;filter:brightness(1.06)}
.work-continue small{font-size:11px;letter-spacing:1px;opacity:.8}
.work-block{margin-top:26px;padding:30px 40px 34px;border:1px solid var(--line,#dbd3c6);border-radius:20px;background:var(--paper,#fff)}
.work-block h2{margin-bottom:20px;padding-left:13px;border-left:3px solid var(--ink,#a75d2d);font-size:19px;letter-spacing:3px;color:var(--title-color,#3a2f22)}
.work-block p{margin:0 0 14px;font-size:14.5px;line-height:2;letter-spacing:.6px;color:var(--text,#302d29);overflow-wrap:anywhere}
.work-block p:last-child{margin-bottom:0}
.work-block p strong{color:var(--title-color,#3a2f22)}
.work-variant{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:10px;padding:15px 20px;border:1px solid var(--line,#dbd3c6);border-radius:12px;background:var(--soft,#f1ece3)}
.work-variant:last-child{margin-bottom:0}
.work-variant:hover{border-color:var(--ink,#a75d2d)}
.work-variant.is-primary{background:var(--paper,#fff);border-color:var(--ink,#a75d2d)}
.variant-title{min-width:0;font-size:14.5px;line-height:1.7;overflow-wrap:anywhere}
.variant-meta{flex:0 0 auto;font-size:11.5px;letter-spacing:1px;color:var(--muted,#8b837b)}
.work-loading{padding:46px 0;text-align:center;font-size:13px;color:var(--muted,#8b837b)}
@media(max-width:1000px){.work-cover{--cover-span:126px}.work-hero{padding:28px 26px;gap:26px}.work-block{padding:24px 22px 28px}}
@media(max-width:600px){.work-cover{--cover-span:84px}.work-seal{width:13px;height:13px;font-size:8px;right:10%}.work-card .book-title{font-size:12.5px}.work-hero{flex-direction:column;align-items:flex-start;padding:20px 16px;gap:18px}.work-hero-cover{--cover-span:130px;width:132px}.work-info h1{margin:0;font-size:22px;letter-spacing:1px}.work-block h2{font-size:17px;letter-spacing:1px}.work-block p{font-size:13.5px;line-height:1.95}.work-variant{align-items:flex-start;flex-direction:column;gap:6px}}

/* 书架右侧"在读"栏：聚合本机阅读进度（localStorage），桌面为右栏、窄屏为书架上方的横滑条 */
.shelf-layout{display:grid;grid-template-columns:minmax(0,1fr) 264px;gap:34px;align-items:start;margin-top:18px}
.shelf-main{min-width:0}
.reading-rail{position:sticky;top:18px;margin-top:15px;padding:15px 18px 18px;border:1px solid var(--line,#dbd3c6);border-radius:18px;background:var(--paper,#fff)}
.reading-rail h2{display:flex;align-items:center;gap:9px;font-size:16px;letter-spacing:2px;color:var(--title-color,#3a2f22)}
.reading-rail h2::before{content:"";flex:0 0 auto;width:3px;height:14px;border-radius:2px;background:var(--ink,#a75d2d)}
.reading-rail h2 small{margin-left:0}
.reading-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.reading-item{display:flex;align-items:center;gap:12px;padding:6px;border-radius:12px}
.reading-item:hover{background:var(--soft,#f1ece3)}
.reading-item .book-cover{flex:0 0 auto;width:52px;box-shadow:2px 3px 8px #453a2520}
.reading-item .book-cover:not(.work-cover){padding:0}
.reading-item .book-cover:not(.work-cover) span{display:none}
.reading-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.reading-title{font-size:13px;font-weight:700;color:var(--title-color,#3a2f22);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reading-bar{display:block;height:4px;border-radius:999px;background:rgba(173,102,43,.16);overflow:hidden}
.reading-bar i{display:block;height:100%;border-radius:inherit;background:var(--ink,#a75d2d)}
.reading-meta{font-size:10.5px;color:var(--muted,#8b837b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reading-empty{margin:12px 0 2px;font-size:12px;line-height:1.8;color:var(--muted,#8b837b)}
@media(min-width:1001px){.shelf-layout .book-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:1000px){.shelf-layout{grid-template-columns:minmax(0,1fr);gap:20px;margin-top:22px}.reading-rail{position:static;order:-1;margin-top:0;padding:14px 16px}.reading-rail.is-empty{display:none}.reading-list{flex-direction:row;overflow-x:auto;gap:12px;padding-bottom:4px}.reading-item{flex:0 0 216px}.reading-empty{margin:8px 0 0}}

/* 平板竖屏书架工具行：标题、管理入口与搜索保持同一行。 */
@media(min-width:601px) and (max-width:1000px){.shelf-heading{flex-wrap:nowrap;gap:12px}.shelf-title-group{flex:1 1 auto;flex-wrap:nowrap!important;gap:10px!important}.shelf-title-group h2{white-space:nowrap}.search-box{flex:0 1 260px;width:min(260px,34vw);min-width:180px}}

/* 手机书苑页头：品牌靠左，配色紧邻右侧账户。 */
@media(max-width:600px){.library-header{height:82px;min-height:82px;padding:0;display:grid;grid-template-columns:max-content minmax(0,1fr) max-content max-content;gap:6px;align-items:center}.library-brand{grid-column:1;justify-self:start;min-width:0;font-size:20px;gap:8px;letter-spacing:1px}.library-brand .brand-seal{font-size:25px;padding:6px 8px}.library-brand small{display:block;font-size:8px;letter-spacing:1px;margin-top:4px}.library-header-account{grid-column:4;justify-self:end}.library-center-tools{grid-column:3;justify-self:end;min-width:0}.library-center-tools #theme-picker{display:block;width:67px;max-width:67px;margin:0;padding-left:5px;padding-right:3px}}
