:root{color:#17213a;font-synthesis:none;--blue:#163dce;--muted:#65718a;--line:#dde2eb;background:#f4f6fa;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer;touch-action:manipulation;border:0}button:disabled{cursor:wait;opacity:.55}button:focus-visible{outline-offset:4px;outline:3px solid #7897ff}button.primary{background:var(--blue);color:#fff;border-radius:12px;min-height:48px;padding:15px 22px;font-weight:650}button.primary:hover{background:#102da0}.library{max-width:1040px;margin:0 auto;padding:0 42px}.masthead{border-bottom:1px solid var(--line);align-items:center;gap:12px;height:106px;font-size:20px;font-weight:700;display:flex}.brand-mark{background:var(--blue);color:#fff;border-radius:8px 8px 2px 2px;place-items:center;width:36px;height:40px;font-family:serif;display:grid}.edition{color:var(--muted);margin-left:auto;font-size:14px;font-weight:400}.library-heading{justify-content:space-between;align-items:center;gap:20px;padding:58px 0 32px;display:flex}.eyebrow{color:var(--blue);margin:0 0 14px;font-size:14px;font-weight:650}h1{letter-spacing:.025em;margin:0;font-family:Songti SC,SimSun,serif;font-size:40px;font-weight:600;line-height:1.3}.books{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.empty{text-align:center;background:#fff;border:1px dashed #bfc9de;border-radius:18px;flex-direction:column;grid-column:1/-1;justify-content:center;align-items:center;min-height:310px;padding:36px;display:flex}.empty-mark{color:var(--blue);border-bottom:3px solid var(--blue);margin-bottom:14px;padding-bottom:8px;font-family:Georgia,serif;font-size:32px}.empty h2{margin:12px 0;font-size:21px;font-weight:600}.empty p{color:var(--muted);max-width:340px;margin:0;font-size:16px;line-height:1.8}.library-footer{border-top:1px solid var(--line);color:var(--muted);gap:28px;margin:38px 0 28px;padding:22px 0;font-size:14px;line-height:1.8;display:flex}.footnote-label{white-space:nowrap;color:#283653;font-weight:600}.library-footer p{max-width:650px;margin:0}@media (width<=600px){.library{padding:0 22px}.masthead{height:86px;font-size:18px}.edition{font-size:12px}.library-heading{align-items:flex-end;padding:38px 0 28px}h1{font-size:29px}.library-heading .primary{padding:13px 17px;font-size:15px}.books{grid-template-columns:1fr;gap:16px}.empty{min-height:340px;padding:28px}.library-footer{margin-top:30px;display:block}.library-footer p{margin-top:8px}}[hidden]{display:none!important}.notice{color:#163dce;overflow-wrap:anywhere;background:#e8edff;border-radius:10px;margin:0 0 20px;padding:14px 18px;font-size:15px;line-height:1.6}.is-error{color:#a72e34!important}.notice.is-error{background:#fff0f0}.book-card{border:1px solid var(--line);background:#fff;border-radius:18px;min-width:0;padding:26px}.book-topline{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.book-number{color:var(--blue);font-family:Georgia,serif;font-size:30px}.book-format{letter-spacing:.08em;border:1px solid var(--line);color:var(--muted);border-radius:5px;padding:6px 9px;font-size:12px;font-weight:650}.book-name{overflow-wrap:anywhere;margin:0 0 8px;font-size:21px;font-weight:650;line-height:1.5}.book-pages{color:var(--muted);margin:0 0 24px;font-size:14px}.bookmark-summary{color:#485776;border-top:1px solid #edf0f5;align-items:center;gap:10px;padding:18px 0;font-size:15px;display:flex}.bookmark-icon{border:1.5px solid var(--blue);clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);background:#e8edff;border-bottom:0;width:11px;height:15px}.book-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.book-actions .primary{padding:12px 20px;font-size:15px}.text-button{color:var(--muted);background:0 0;min-height:48px;padding:12px 4px;font-size:14px}.text-button:hover{color:var(--blue)}.reader{background:#dfe4ed;flex-direction:column;height:100dvh;display:flex;overflow:hidden}.reader-header{padding:12px max(18px,env(safe-area-inset-right)) 12px max(18px,env(safe-area-inset-left));padding-top:max(12px,env(safe-area-inset-top));border-bottom:1px solid var(--line);background:#fff;flex:none;align-items:center;gap:20px;min-height:64px;display:flex}.back-button{color:var(--blue);background:#eef2fd;border-radius:8px;flex-shrink:0;min-height:44px;padding:12px;font-size:14px}.reader-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.reader-label{white-space:nowrap;color:var(--muted);margin-left:auto;font-size:13px}.reader-viewport{overscroll-behavior-y:contain;overflow-anchor:none;-webkit-overflow-scrolling:touch;scroll-behavior:auto;flex:1;min-height:0;padding:16px 12px 0;position:relative;overflow:auto}.pdf-page{contain:layout paint;background:#fff;width:100%;max-width:860px;margin:0 auto 16px;position:relative;box-shadow:0 2px 10px #27365512}.pdf-page canvas{width:100%;height:100%;display:block}.page-placeholder{color:#8c97ab;place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.is-rendered .page-placeholder{display:none}.page-error{color:#a72e34;background:#fff;width:100%;padding:24px;font-size:16px;position:absolute;inset:0}.reader-tail{pointer-events:none}.reader-toolbar{padding:16px max(24px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));border-top:1px solid var(--line);background:#fff;flex:none;justify-content:space-between;align-items:center;gap:14px;display:flex}.reader-position{flex-direction:column;gap:6px;min-width:0;display:flex}.page-counter{font-variant-numeric:tabular-nums;font-size:16px}.save-feedback{color:var(--muted);font-size:14px;line-height:1.5}.save-button{flex-shrink:0;font-size:15px}@media (width<=600px){.book-card{padding:22px}.reader-header{gap:12px}.reader-label{display:none}.reader-toolbar{padding:14px 16px max(14px,env(safe-area-inset-bottom));gap:12px}.reader-toolbar .primary{padding:14px 16px}.page-counter{font-size:15px}.save-feedback{font-size:13px}.reader-title{font-size:14px}}@media (width<=350px){.library{padding:0 16px}.library-heading{gap:10px}h1{font-size:25px}.edition{text-align:right;max-width:90px}.reader-toolbar{flex-wrap:wrap}.save-button{width:100%}}
