:root{color-scheme:light;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;background:#f3efe5;color:#201a15}html,body,#root{min-height:100%}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at top left,#fbf5ea 0,#f3efe5 48%,#ece5d8)}button,input,select{font:inherit}.app-shell{position:relative;display:flex;flex-direction:column;min-height:100dvh}.app-shell:fullscreen{width:100%;height:100%}.app-shell.is-fullscreen{min-height:100%;height:100%}.topbar{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:20px 28px;border-bottom:1px solid rgba(32,26,21,.12);background:#fffbf4e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10}.topbar h1{margin:0;font-size:28px}.topbar p{margin:6px 0 0;color:#6a5b4f}.topbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.book-selector{display:flex;flex-direction:column;gap:6px;min-width:280px}.book-selector select{padding:10px 12px;border-radius:10px;border:1px solid rgba(32,26,21,.16);background:#fffdfa}.reader-mode-button,.import-button{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:999px;border:1px solid rgba(32,26,21,.12);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}.reader-mode-button{background:#fffbf4f5;color:#3f3126;box-shadow:0 10px 22px #5743281a}.reader-mode-button:hover:not(:disabled),.import-button:hover{transform:translateY(-1px)}.reader-mode-button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.reader-mode-button.is-floating,.import-button{background:linear-gradient(135deg,#9b4d16,#c1721f);color:#fffdf8;box-shadow:0 12px 24px #6c3b122e}.import-button input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.notice-banner,.error-banner,.loading,.pane-error,.empty-state{margin:16px 18px 0;padding:16px 18px;border-radius:16px}.notice-banner{background:#876f4e1f;color:#5f5246}.error-banner,.pane-error{background:#b736361f;color:#7a2525}.update-banner{margin:16px 18px 0;padding:14px 18px;border-radius:16px;border:1px solid rgba(32,26,21,.08);background:#fff7e8f5;color:#5f4528;display:flex;align-items:center;justify-content:space-between;gap:18px}.update-banner p{margin:4px 0 0;font-size:13px}.loading{background:#876f4e14;color:#5f5246}.empty-state{max-width:720px;background:#fffcf7eb;border:1px solid rgba(32,26,21,.1)}.empty-state h2{margin:0 0 10px}.empty-state p{margin:0 0 8px;line-height:1.7}.workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:18px;padding:18px}.left-pane,.right-pane{min-height:0;border-radius:18px;overflow:hidden;border:1px solid rgba(32,26,21,.12);background:#fffcf7eb;box-shadow:0 18px 36px #57432814}.pdf-pane,.translation-pane{height:100%;overflow:auto}.pdf-pages{margin:0 auto;padding:0}.pdf-page-slot{padding-bottom:20px}.pdf-page-card{margin:0 auto;background:#fff;border-radius:14px;box-shadow:0 10px 24px #00000014;padding:14px;content-visibility:auto;contain:layout paint style;contain-intrinsic-size:1280px}.pdf-page-card canvas{width:100%;height:auto;display:block}.pdf-page-label{font-size:12px;line-height:20px;min-height:20px;display:block;color:#7b6d60;margin-bottom:8px}.pdf-spacer{pointer-events:none}.right-pane{display:flex;flex-direction:column}.sync-status{display:flex;gap:16px;padding:14px 18px;border-bottom:1px solid rgba(32,26,21,.1);color:#6a5b4f;font-size:13px;flex-wrap:wrap}.download-links-panel{margin:16px 18px 0;padding:16px 18px;border:1px solid rgba(32,26,21,.08);border-radius:16px;background:#fcf7eee6}.download-links-header{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:14px}.download-links-header h2{margin:0;font-size:18px}.download-links-header p{margin:4px 0 0;color:#6a5b4f;font-size:13px}.download-source-list{display:flex;flex-direction:column;gap:12px}.download-source-card{border:1px solid rgba(32,26,21,.08);border-radius:16px;background:#fffdf8;padding:14px;display:flex;flex-direction:column;gap:10px}.download-source-meta{display:flex;align-items:start;justify-content:space-between;gap:12px}.download-source-meta strong{display:block;font-size:16px}.download-source-meta span{color:#6a5b4f;font-size:12px}.download-source-password{padding:4px 10px;border-radius:999px;background:#c1721f1f;color:#8a531d;white-space:nowrap}.download-source-description,.download-source-note{margin:0;color:#4c3f34;line-height:1.6}.download-source-note{font-size:13px;color:#7a6b5f}.download-source-url{color:#8a531d;word-break:break-all}.download-source-actions{display:flex;gap:10px;flex-wrap:wrap}.download-link-button{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid rgba(32,26,21,.12);background:#fffdfa;color:#5b4735;cursor:pointer;text-decoration:none}.download-link-button.is-primary{background:linear-gradient(135deg,#9b4d16,#c1721f);color:#fffdf8;border-color:transparent}.bookmarks-panel{padding:16px 18px;border-bottom:1px solid rgba(32,26,21,.08);background:#fff9f1d1}.bookmarks-header{display:flex;align-items:start;justify-content:space-between;gap:16px;margin-bottom:14px}.bookmarks-header h2{margin:0;font-size:18px}.bookmarks-header p{margin:4px 0 0;color:#6a5b4f;font-size:13px}.bookmark-action-button,.bookmark-delete-button,.bookmark-select-button{font:inherit}.bookmark-action-button,.bookmark-delete-button{border:1px solid rgba(32,26,21,.12);border-radius:999px;background:#fffdfa;color:#5b4735;min-height:36px;padding:0 14px;cursor:pointer}.bookmarks-empty{margin:0;color:#806f61}.bookmarks-list{display:flex;flex-direction:column;gap:10px;max-height:220px;overflow:auto}.bookmark-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.bookmark-select-button{width:100%;text-align:left;border:1px solid rgba(32,26,21,.1);border-radius:14px;background:#fffdf8;padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:4px}.bookmark-title{font-weight:600;color:#201a15}.bookmark-meta,.bookmark-note{color:#6a5b4f;font-size:12px}.translation-pane{flex:1;min-height:0;padding:18px}.translation-page-group{margin-bottom:28px;content-visibility:auto;contain:layout paint style;contain-intrinsic-size:960px}.translation-page-group h2{font-size:18px;line-height:26px;margin:0 0 12px}.translation-card{border-radius:14px;background:#fffdf8;border:1px solid rgba(32,26,21,.1);padding:14px 16px;margin-bottom:12px;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.translation-card:hover{border-color:#c1721f73}.translation-card:focus-visible{outline:2px solid rgba(193,114,31,.6);outline-offset:2px}.translation-card.is-active{border-color:#c1721f;background:#fff6e9;transform:translate(-2px)}.translation-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#806f61;margin-bottom:10px}.translation-card p{margin:0;line-height:1.7;white-space:pre-wrap}.translation-spacer{pointer-events:none}.reader-floating-controls{position:absolute;right:18px;bottom:18px;z-index:30;display:flex;align-items:center;gap:14px;width:min(460px,calc(100% - 36px));padding:12px 14px;border-radius:18px;border:1px solid rgba(32,26,21,.12);background:#fffbf4eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 18px 32px #201a151f}.reader-floating-meta{min-width:0;display:flex;flex-direction:column;gap:4px}.reader-floating-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:#201a15}.reader-floating-subline{display:flex;gap:10px;flex-wrap:wrap;color:#6a5b4f;font-size:12px}.app-shell.is-fullscreen .topbar{display:none}.app-shell.is-fullscreen .workspace{gap:12px;padding:12px}.app-shell.is-fullscreen .left-pane,.app-shell.is-fullscreen .right-pane{border-radius:14px}.app-shell.is-fullscreen .sync-status,.app-shell.is-fullscreen .bookmarks-panel,.app-shell.is-fullscreen .update-banner,.app-shell.is-fullscreen .download-links-panel,.app-shell.is-fullscreen .reader-floating-controls,.app-shell.is-fullscreen .notice-banner,.app-shell.is-fullscreen .error-banner{display:none}.app-shell.is-fullscreen .notice-banner,.app-shell.is-fullscreen .error-banner{position:absolute;top:12px;left:12px;right:12px;margin:0;z-index:35}.app-shell.low-power .topbar,.app-shell.low-power .reader-floating-controls{-webkit-backdrop-filter:none;backdrop-filter:none}.app-shell.low-power .reader-mode-button,.app-shell.low-power .import-button,.app-shell.low-power .translation-card{transition:none}.app-shell.low-power .left-pane,.app-shell.low-power .right-pane,.app-shell.low-power .pdf-page-card,.app-shell.low-power .reader-mode-button,.app-shell.low-power .import-button,.app-shell.low-power .reader-floating-controls{box-shadow:none}.app-shell.low-power .translation-card.is-active{transform:none}@media(max-width:1100px){.topbar{align-items:start;flex-direction:column}.topbar-actions{width:100%}.book-selector{min-width:min(100%,280px)}.workspace{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(0,1fr)}}@media(max-width:720px){.topbar{padding:16px}.workspace{gap:12px;padding:12px}.update-banner{flex-direction:column;align-items:stretch}.reader-floating-controls{right:12px;bottom:12px;left:12px;width:auto;align-items:stretch;flex-direction:column}.reader-mode-button.is-floating{width:100%}}
