@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;600;700&display=swap";:root{--color-bg-light:#f5f7fa;--color-bg-dark:#0f172a;--color-surface-light:#ffffffb3;--color-surface-dark:#1e293bb3;--color-primary:#3b82f6;--color-primary-rgb:59, 130, 246;--color-primary-hover:#2563eb;--color-accent:#8b5cf6;--text-main-light:#1e293b;--text-muted-light:#64748b;--text-main-dark:#f8fafc;--text-muted-dark:#94a3b8;--glass-border-light:#fff3;--glass-border-dark:#ffffff0d;--glass-shadow:0 4px 30px #0000001a;--glass-blur:blur(10px);--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--transition-fast:.2s ease;--transition-smooth:.3s cubic-bezier(.25, .8, .25, 1)}*{box-sizing:border-box}body{background:var(--color-bg-light);color:var(--text-main-light);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition-smooth), color var(--transition-smooth);margin:0;font-family:Inter,sans-serif}@media (prefers-color-scheme:dark){body{background:var(--color-bg-dark);color:var(--text-main-dark)}}h1,h2,h3,h4,h5,h6{margin-top:0;font-family:Outfit,sans-serif}#root{flex-direction:column;min-height:100vh;display:flex}.glass-panel{background:var(--color-surface-light);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border-light);box-shadow:var(--glass-shadow);border-radius:var(--radius-lg)}@media (prefers-color-scheme:dark){.glass-panel{background:var(--color-surface-dark);border:1px solid var(--glass-border-dark)}}.btn{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:var(--color-primary);color:#fff;border:none;justify-content:center;align-items:center;padding:10px 20px;font-family:Inter,sans-serif;font-weight:500;display:inline-flex}.btn:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px #3b82f64d}.btn:active{transform:translateY(0)}.library-container{width:100%;max-width:1200px;margin:0 auto;padding:1rem}.library-header{justify-content:space-between;align-items:center;margin-bottom:2rem;padding:1.5rem 2rem;display:flex}.library-header h1{color:var(--color-primary);margin:0;font-size:2rem}.books-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1.5rem;display:grid}.empty-state{text-align:center;color:var(--text-muted-light);grid-column:1/-1;padding:4rem}@media (prefers-color-scheme:dark){.empty-state{color:var(--text-muted-dark)}}.book-card{cursor:pointer;transition:transform var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex;position:relative;overflow:hidden}.book-card:hover{transform:translateY(-5px);box-shadow:0 10px 40px #00000026}.book-cover{aspect-ratio:2/3;background:linear-gradient(135deg, var(--color-primary), var(--color-accent));color:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.cover-img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.book-card:hover .cover-img{transform:scale(1.1)}.cover-title{opacity:.3;text-transform:uppercase;font-family:Outfit,sans-serif;font-size:4rem;font-weight:700}.lcp-badge{color:#fff;background:#0009;border-radius:4px;padding:4px 8px;font-size:.7rem;font-weight:600;position:absolute;top:10px;right:10px}.translation-type-badge{color:#fff;background:#3b82f6e6;border-radius:4px;padding:4px 8px;font-size:.7rem;font-weight:600;position:absolute;top:10px;left:10px}.book-info{padding:1rem}.book-info h3{white-space:nowrap;text-overflow:ellipsis;margin:0 0 .2rem;font-size:.95rem;font-weight:600;overflow:hidden}.book-info p{color:var(--text-muted-light);margin:0;font-size:.9rem}@media (prefers-color-scheme:dark){.book-info p{color:var(--text-muted-dark)}}.delete-btn{z-index:10;color:#fff;cursor:pointer;opacity:0;background:#ff0000b3;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;transition:opacity .2s;display:flex;position:absolute;top:10px;right:10px}.book-card:hover .delete-btn{opacity:1}@media (pointer:coarse){.delete-btn{background:#f00c;width:32px;height:32px;opacity:1!important}}.delete-btn:hover{background:red}.auth-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background-color:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{text-align:center;background:#fff;border-radius:12px;width:90%;max-width:400px;padding:2rem;animation:.3s cubic-bezier(.175,.885,.32,1.275) modal-pop;box-shadow:0 10px 30px #0003}@keyframes modal-pop{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.auth-modal h2{color:#333;margin-top:0;font-family:Inter,sans-serif}.auth-modal p{color:#666;margin-bottom:1.5rem;font-size:.9rem}.auth-input{box-sizing:border-box;border:1px solid #ddd;border-radius:8px;width:100%;margin-bottom:1rem;padding:12px;font-size:1rem;transition:border-color .2s}.auth-input:focus{border-color:#007bff;outline:none}.auth-error{color:#d9534f;text-align:left;margin-top:-10px;margin-bottom:10px;font-size:.85rem}.auth-actions{justify-content:space-between;gap:10px;display:flex}.auth-actions button{cursor:pointer;border:none;border-radius:8px;flex:1;padding:12px;font-family:Inter,sans-serif;font-size:1rem;transition:background-color .2s,transform .1s}.auth-actions button:active{transform:scale(.98)}.auth-btn-cancel{color:#333;background-color:#f1f1f1}.auth-btn-cancel:hover{background-color:#e2e2e2}.auth-btn-submit{color:#fff;background-color:#007bff}.auth-btn-submit:hover{background-color:#0069d9}.reader-container{--color-bg:#f5f7fa;--color-surface:#ffffffb3;--color-surface-solid:#fff;--text-main:#1e293b;--text-muted:#64748b;--text-main-light:#1e293b;--text-muted-light:#64748b;--text-main-dark:#1e293b;--text-muted-dark:#64748b;--color-surface-light:#ffffffb3;--color-surface-dark:#ffffffb3;--glass-border:#00000014;--glass-border-light:#00000014;--glass-border-dark:#00000014;--glass-shadow:0 8px 32px #00000014;--color-tab-inactive:#0000000d;--color-tab-hover:#0000001a;--color-btn-bg:#fff;flex-direction:column;width:100%;height:100vh;transition:background .3s,color .3s;display:flex;position:relative;overflow:hidden;background:var(--color-bg)!important;color:var(--text-main)!important}.reader-container[data-theme=sepia]{--color-bg:#f4ecd8;--color-surface:#fcf8edcc;--color-surface-solid:#fcf8ed;--text-main:#5b4636;--text-muted:#8c7665;--text-main-light:#5b4636;--text-muted-light:#8c7665;--text-main-dark:#5b4636;--text-muted-dark:#8c7665;--color-surface-light:#fcf8edcc;--color-surface-dark:#fcf8edcc;--glass-border:#5b463626;--glass-border-light:#5b463626;--glass-border-dark:#5b463626;--glass-shadow:0 8px 32px #5b46361f;--color-tab-inactive:#5b463612;--color-tab-hover:#5b463626;--color-btn-bg:#fcf8ed}.reader-container[data-theme=dark]{--color-bg:#0f172a;--color-surface:#1e293bb3;--color-surface-solid:#1e293b;--text-main:#f8fafc;--text-muted:#94a3b8;--text-main-light:#f8fafc;--text-muted-light:#94a3b8;--text-main-dark:#f8fafc;--text-muted-dark:#94a3b8;--color-surface-light:#1e293bb3;--color-surface-dark:#1e293bb3;--glass-border:#ffffff14;--glass-border-light:#ffffff14;--glass-border-dark:#ffffff14;--glass-shadow:0 8px 32px #0000004d;--color-tab-inactive:#0003;--color-tab-hover:#0000004d;--color-btn-bg:#1e293b}.reader-container[data-theme=obsidian]{--color-bg:#000;--color-surface:#121212cc;--color-surface-solid:#121212;--text-main:#e5e7eb;--text-muted:#9ca3af;--text-main-light:#e5e7eb;--text-muted-light:#9ca3af;--text-main-dark:#e5e7eb;--text-muted-dark:#9ca3af;--color-surface-light:#121212cc;--color-surface-dark:#121212cc;--glass-border:#ffffff0d;--glass-border-light:#ffffff0d;--glass-border-dark:#ffffff0d;--glass-shadow:0 8px 32px #00000080;--color-tab-inactive:#ffffff08;--color-tab-hover:#ffffff0f;--color-btn-bg:#121212}.reader-container .glass-panel{background:var(--color-surface)!important;border-color:var(--glass-border)!important;box-shadow:var(--glass-shadow)!important;color:var(--text-main)!important}.reader-toolbar{z-index:1000;justify-content:space-between;align-items:center;width:90%;max-width:1000px;height:60px;padding:0 20px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275);display:flex;position:absolute;top:15px;left:50%;transform:translate(-50%)}w{border-radius:3px;padding:0 .25px}.highlight-active{color:#000!important;background-color:#ffd70099!important}@media (prefers-color-scheme:dark){.highlight-active{color:#000!important;background-color:#ffd700cc!important}}.reader-toolbar.hidden{transform:translate(-50%)translateY(-100px)}.reader-toolbar.visible{transform:translate(-50%)translateY(0)}.top-trigger-zone{z-index:1100;height:15px;position:fixed;top:0;left:0;right:0}@media (prefers-color-scheme:dark){.back-btn{color:var(--text-main-dark);border-color:var(--glass-border-dark)}}.toggle-btn{background:var(--color-surface-light);color:var(--text-main-light);border:1px solid var(--glass-border-light)}.toggle-btn.active{background:var(--color-primary);color:#fff}.viewer-wrapper{flex:1;justify-content:center;width:100%;height:100%;display:flex;position:relative}.epub-viewer{border-radius:var(--radius-md);width:100%;max-width:800px;box-shadow:var(--glass-shadow);touch-action:pan-y;will-change:transform;background:#fff;margin:0 auto;position:absolute;inset:0 0 20px;overflow:hidden;transform:translate(0)}@media (prefers-color-scheme:dark){.epub-viewer{background:#121212}}.reader-controls{pointer-events:none;z-index:500;justify-content:space-between;width:100%;padding:0 10px;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.nav-btn{pointer-events:auto;background:var(--color-primary);color:#fff;cursor:pointer;width:60px;height:60px;transition:all var(--transition-fast);z-index:1000;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-size:2.5rem;display:flex;box-shadow:0 4px 15px #0000004d}.nav-btn.left{margin-left:20px}.nav-btn.right{margin-right:20px}.nav-btn:hover{background:var(--color-primary);color:#fff;transform:scale(1.1)}@media (prefers-color-scheme:dark){.nav-btn{background:var(--color-surface-dark);border-color:var(--glass-border-dark)}}@media (pointer:coarse){.nav-btn{display:none!important}}@media (pointer:fine){.nav-btn{display:flex!important}}.reader-loading,.reader-error{font-family:Outfit,sans-serif;font-size:1.5rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.reader-error{color:#d9534f}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.dict-panel{z-index:2200;background:var(--color-surface-light);border-top:1px solid var(--glass-border-light);will-change:height;border-radius:15px 15px 0 0;flex-direction:column;animation:.3s ease-out slideUp;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 40px #00000026}.dict-top-bar{align-items:center;gap:10px;height:35px;padding:0 15px;display:flex;position:relative}.dict-drag-handle{cursor:ns-resize;touch-action:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;height:100%;display:flex}.close-dict{cursor:pointer;color:var(--text-muted-light);background:0 0;border:none;font-size:1.5rem;line-height:1}.handle-bar{background:var(--text-muted-light);opacity:.2;border-radius:2px;width:30px;height:3px}.dict-slider-dots{justify-content:center;align-items:center;gap:6px;display:flex}.slider-dot{background:var(--text-muted-light);opacity:.3;cursor:pointer;border-radius:50%;width:6px;height:6px;transition:all .2s}.slider-dot.active{opacity:1;background:#3b82f6;border-radius:3px;width:16px}@media (prefers-color-scheme:dark){.dict-panel{background:var(--color-surface-dark);border-top-color:var(--glass-border-dark)}.handle-bar,.close-dict,.slider-dot{color:var(--text-muted-dark);background-color:var(--text-muted-dark)}.slider-dot.active{background:#60a5fa}}.dict-content{flex:1;width:100%;position:relative;overflow:hidden}.dict-panel-slider{width:300%;height:100%;transition:transform .35s cubic-bezier(.25,.46,.45,.94);display:flex}.dict-slide-view{box-sizing:border-box;width:33.333%;height:100%;padding:10px 15px 25px;overflow-y:auto}.inflections-table-wrapper{box-sizing:border-box;width:100%;padding:5px}.inflections-table-wrapper table{border-collapse:collapse;border-radius:8px;width:100%;margin:10px 0;font-size:.9rem;overflow:hidden;box-shadow:0 4px 15px #0000000d}.inflections-table-wrapper th,.inflections-table-wrapper td{text-align:left;border-bottom:1px solid #0000000d;padding:8px 10px}.inflections-table-wrapper th{color:#3b82f6;background:#3b82f61a;font-weight:600}.inflections-table-wrapper tr:hover{background:#3b82f605}[data-theme=dark] .inflections-table-wrapper th,[data-theme=obsidian] .inflections-table-wrapper th{color:#60a5fa;background:#60a5fa26}[data-theme=dark] .inflections-table-wrapper td,[data-theme=obsidian] .inflections-table-wrapper td{border-bottom:1px solid #ffffff0d}.definition-line{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.source-word{color:var(--color-primary);text-transform:capitalize;font-size:1.5rem;font-weight:700}.speak-btn{cursor:pointer;opacity:.6;background:0 0;border:none;margin-top:-4px;padding:0;font-size:1.1rem;transition:opacity .2s}.speak-btn:active{opacity:1;transform:scale(1.1)}.gloss-arrow{color:var(--text-muted-light);opacity:.5;font-weight:300}.main-translation{color:var(--text-main-light);font-weight:500;font-size:1.5rem!important}@media (prefers-color-scheme:dark){.main-translation{color:var(--text-main-dark)}.lang-badge{color:var(--text-muted-dark);background:#ffffff0d}}.dict-scroll-area{flex:1;overflow-y:auto}.lang-badge{color:var(--text-muted-light);border:1px solid var(--glass-border-light);background:#0000000d;border-radius:20px;padding:4px 10px;font-size:.7rem;font-weight:700}.lang-controls{align-items:center;gap:8px;display:flex}.swap-btn{background:var(--color-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.9rem;transition:transform .2s;display:flex;box-shadow:0 2px 5px #0000001a}.swap-btn:active{transform:scale(.9)rotate(180deg)}@media (prefers-color-scheme:dark){.lang-badge{color:var(--text-muted-dark);background:#ffffff0d}}.main-translation{color:var(--text-main-light);font-weight:500;margin-bottom:20px!important;font-size:1.4rem!important}@media (prefers-color-scheme:dark){.main-translation{color:var(--text-main-dark)}}.alternatives h4{color:var(--text-muted-light);text-transform:uppercase;letter-spacing:.05em;margin:20px 0 10px;font-size:.9rem}.alternatives ul{margin:0;padding:0;list-style:none}.dict-section{margin-bottom:10px}.example-pair em{color:var(--color-primary);background:rgba(var(--color-primary-rgb), .15);box-shadow:0 0 10px rgba(var(--color-primary-rgb), .2);border-radius:4px;padding:0 4px;font-style:normal;font-weight:700}.toolbar-center{position:absolute;left:50%;transform:translate(-50%)}.toc-btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);padding:8px 16px;font-weight:600;box-shadow:0 4px 12px #3b82f633}.toc-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.toc-panel{flex-direction:column;width:100%;max-width:400px;max-height:80vh;display:flex;overflow:hidden;background:var(--color-surface-solid)!important;border:1px solid var(--glass-border)!important;color:var(--text-main)!important}.toc-header{border-bottom:1px solid var(--glass-border-light);justify-content:space-between;align-items:center;padding:20px;display:flex}.toc-header h3{margin:0;font-size:1.2rem}.close-toc{cursor:pointer;color:var(--text-muted-light);background:0 0;border:none;font-size:1.8rem}.toc-list{flex:1;padding:10px;overflow-y:auto}.toc-item{border-radius:var(--radius-sm);cursor:pointer;border-bottom:1px solid #0000000d;padding:12px 15px;transition:all .2s}.toc-item:hover{background:rgba(var(--color-primary-rgb), .1);color:var(--color-primary);padding-left:20px}.toc-item:last-child{border-bottom:none}.examples-section h4{color:var(--text-muted-light);text-transform:uppercase;letter-spacing:.05em;margin:0 0 5px;font-size:.8rem}.example-pair{background:#00000004;border-left:3px solid #3b82f626;border-radius:6px;margin-bottom:12px;padding:8px 10px}@media (prefers-color-scheme:dark){.example-pair{background:#ffffff05;border-left-color:#60a5fa40}}.ex-src{color:var(--text-main-light);font-size:.95rem;font-weight:500;line-height:1.35;margin:0 0 5px!important}.ex-trg{color:var(--text-muted-light);font-size:.9rem;font-style:italic;line-height:1.35;margin:0!important}.ex-src em,.ex-src hl,.ex-src mark,.ex-src strong,.ex-src b{color:var(--color-primary);background:0 0;font-style:normal;font-weight:700}.ex-trg em,.ex-trg hl,.ex-trg mark,.ex-trg strong,.ex-trg b{color:var(--color-accent);background:0 0;font-style:normal;font-weight:700}[data-theme=dark] .ex-trg em,[data-theme=dark] .ex-trg hl,[data-theme=dark] .ex-trg mark,[data-theme=dark] .ex-trg strong,[data-theme=dark] .ex-trg b,[data-theme=obsidian] .ex-trg em,[data-theme=obsidian] .ex-trg hl,[data-theme=obsidian] .ex-trg mark,[data-theme=obsidian] .ex-trg strong,[data-theme=obsidian] .ex-trg b{color:#c084fc}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ex-trg em,:root:not([data-theme=light]) .ex-trg hl,:root:not([data-theme=light]) .ex-trg mark,:root:not([data-theme=light]) .ex-trg strong,:root:not([data-theme=light]) .ex-trg b{color:#c084fc}.ex-src{color:var(--text-main-dark)}.ex-trg{color:var(--text-muted-dark)}}.phonetic{color:var(--text-muted-light);margin-bottom:5px;font-family:monospace;display:block}.pos{text-transform:uppercase;color:var(--color-primary);background:#3b82f61a;border-radius:4px;margin-bottom:15px;padding:2px 8px;font-size:.8rem;font-weight:700;display:inline-block}.definition{margin:10px 0;font-size:1.1rem;line-height:1.5}.dict-loader,.dict-error{text-align:center;color:var(--text-muted-light);padding:20px 0;font-style:italic}.floating-trans-card{z-index:3000;-webkit-backdrop-filter:blur(12px)saturate(180%);pointer-events:auto;border-radius:12px;width:auto;min-width:200px;max-width:min(500px,90vw);max-height:40vh;padding:8px 16px;font-family:Inter,system-ui,sans-serif;line-height:1.5;transition:background .3s,color .3s,border-color .3s,transform .3s;animation:.3s cubic-bezier(.23,1,.32,1) forwards floatIn;position:fixed;overflow-y:auto;box-shadow:0 12px 32px #00000026;box-sizing:border-box!important}.floating-trans-card[data-theme=light]{border:1px solid #3b82f633;border-top:3px solid var(--color-primary);color:#1a1a1a;background:#f0f7fff2}.floating-trans-card[data-theme=sepia]{color:#5b4636;background:#f4e8d2fa;border:1px solid #d3c1ad;border-top:3px solid #b38b6d}.floating-trans-card[data-theme=dark]{border:1px solid #ffffff1a;border-top:3px solid var(--color-primary);color:#e2e8f0;background:#0f172af2}.floating-trans-card[data-theme=obsidian]{border:1px solid #3f3f46;border-top:3px solid var(--color-primary);color:#d4d4d8;background:#09090bfa;box-shadow:0 0 25px #3b82f633}.machine-debug-view{color:var(--text-muted-light);font-size:.8rem}.debug-payload{background:#00000008;border-radius:6px;max-height:100px;margin-top:10px;padding:8px;overflow-y:auto}.debug-payload code{word-break:break-all;white-space:pre-wrap;margin-top:4px;font-family:monospace;display:block}@media (prefers-color-scheme:dark){.debug-payload{background:#ffffff08}}.trans-card-footer{justify-content:center;align-items:center;min-height:14px;margin-top:3px;padding-top:4px;display:flex;position:relative}.dot{background:#00000026;border-radius:50%;width:4px;height:4px;transition:all .3s cubic-bezier(.4,0,.2,1)}.dot.active{background:var(--color-primary);border-radius:3px;width:12px}.trans-mode-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted-light);opacity:.8;font-size:.7rem;font-weight:700;position:absolute;bottom:0;right:8px}hl{background:rgba(var(--color-primary-rgb), .2);border-bottom:2px solid var(--color-primary);border-radius:2px;padding:0 2px;font-weight:700}@media (prefers-color-scheme:dark){.dot{background:#fff3}.trans-mode-label{color:var(--text-muted-dark)}}.floating-trans-header{color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.75rem;font-weight:700;display:flex}.floating-trans-content{font-size:1.05rem;font-weight:500}@keyframes floatIn{0%{opacity:0;scale:.98}to{opacity:1;scale:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.settings-panel-overlay{z-index:2500;background:#0003;justify-content:center;align-items:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.settings-panel{border-radius:24px 24px 0 0;flex-direction:column;width:100%;max-width:600px;max-height:60vh;padding:24px;animation:.3s cubic-bezier(.23,1,.32,1) slideUp;display:flex;box-shadow:0 -10px 40px #0003;background:var(--color-surface-solid)!important;border-top:1px solid var(--glass-border)!important;color:var(--text-main)!important}.settings-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.settings-header h3{margin:0;font-size:1.25rem;font-weight:700}.close-settings{color:var(--text-muted-light);cursor:pointer;background:0 0;border:none;font-size:2rem;line-height:1}.settings-content{flex-direction:column;flex:1;gap:24px;padding-bottom:20px;display:flex;overflow-y:auto}.settings-section h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted-light);margin:0 0 12px;font-size:.85rem}.theme-picker{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.theme-btn{cursor:pointer;border:2px solid #0000;border-radius:12px;justify-content:center;align-items:center;height:48px;font-size:1.2rem;font-weight:600;transition:all .2s;display:flex}.theme-btn.light{color:#1a1a1a;background:#fff;border-color:#eee}.theme-btn.sepia{color:#5b4636;background:#f4ecd8;border-color:#e8dbcc}.theme-btn.dark{color:#e2e8f0;background:#1c2026;border-color:#334155}.theme-btn.obsidian{color:#a0a0a0;background:#000;border-color:#262626}.theme-btn.active{border-color:var(--color-primary);transform:scale(1.05)}.font-picker{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.font-btn{cursor:pointer;border-radius:10px;padding:12px;font-size:1rem;transition:all .2s;border:1px solid var(--glass-border)!important;background:var(--color-surface)!important;color:var(--text-main)!important}.font-btn.active{background:var(--color-primary)!important;color:#fff!important;border-color:var(--color-primary)!important}.settings-section.row{justify-content:space-between;align-items:center;display:flex}.settings-label p{color:var(--text-muted);font-size:.8rem;margin:4px 0 0!important}.switch{width:50px;height:28px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:#ccc;transition:all .4s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;width:20px;height:20px;transition:all .4s;position:absolute;bottom:4px;left:4px}input:checked+.slider{background-color:var(--color-primary)}input:checked+.slider:before{transform:translate(22px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.range-slider{-webkit-appearance:none;border-radius:5px;outline:none;width:100%;height:6px;background:var(--color-tab-inactive)!important}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--color-primary);cursor:pointer;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 6px #0003}.section-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.value-tag{color:var(--color-primary);font-size:.85rem;font-weight:600}.settings-section.grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.control-group{border-radius:10px;justify-content:space-between;align-items:center;padding:4px;display:flex;background:var(--color-tab-inactive)!important}.control-group button{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.2rem;display:flex;box-shadow:0 2px 4px #0000000d;border:1px solid var(--glass-border)!important;background:var(--color-btn-bg)!important;color:var(--text-main)!important}.control-group span{font-size:.9rem;font-weight:600}.mode-picker{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.mode-picker.triple .mode-btn{padding:10px 4px;font-size:.8rem}.mode-btn{cursor:pointer;border-radius:12px;padding:12px;font-family:Inter,sans-serif;font-weight:600;transition:all .2s;border:1px solid var(--glass-border)!important;background:var(--color-surface)!important;color:var(--text-main)!important}.mode-btn.active{box-shadow:0 4px 12px #3b82f64d;background:var(--color-primary)!important;color:#fff!important;border-color:var(--color-primary)!important}.reader-container.mode-paginated .epub-viewer{border-radius:0;margin:0 auto;bottom:90px;max-width:800px!important}.reader-container.mode-scrolled .epub-viewer,.reader-container.mode-chapter .epub-viewer{max-width:800px;margin:0 auto;height:100%!important;min-height:100%!important;position:relative!important;overflow-y:auto!important}.reader-container.mode-scrolled .viewer-wrapper,.reader-container.mode-scroll-page .viewer-wrapper,.reader-container.mode-chapter .viewer-wrapper{display:flex;overflow-y:auto!important}@media screen and (width<=768px){.reader-container.mode-paginated .epub-viewer{width:100vw!important;margin:0!important;bottom:90px!important;left:0!important;right:0!important}}.tts-control-bar{z-index:2100;-webkit-backdrop-filter:blur(16px)saturate(180%);will-change:transform, opacity;border:1px solid var(--glass-border-light);background:#ffffffbf;border-radius:27px;align-items:center;gap:12px;width:auto;min-width:260px;height:54px;padding:8px 16px;transition:all .3s cubic-bezier(.25,.8,.25,1);display:flex;position:absolute;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000026,0 1px 3px #0000000d}@media (prefers-color-scheme:dark){.tts-control-bar{border-color:var(--glass-border-dark);background:#0f172acc;box-shadow:0 10px 30px #0000004d,0 0 1px #ffffff1a}}.tts-buttons{align-items:center;gap:10px;display:flex}.tts-btn{color:var(--text-main-light);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.15rem;transition:all .2s;display:flex}@media (prefers-color-scheme:dark){.tts-btn{color:var(--text-main-dark)}}.tts-btn:hover:not(:disabled){color:var(--color-primary);background:#3b82f61a;transform:scale(1.08)}.tts-btn:active:not(:disabled){transform:scale(.95)}.tts-btn:disabled{opacity:.3;cursor:not-allowed}.tts-btn.play-pause{background:var(--color-primary);font-size:1.25rem;box-shadow:0 4px 10px #3b82f64d;color:#fff!important}.tts-btn.play-pause:hover{background:#2563eb;transform:scale(1.1)}.tts-btn.play-pause.loading{animation:1.5s ease-in-out infinite pulse-loading}@keyframes pulse-loading{0%{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.1);box-shadow:0 0 15px #3b82f699}to{opacity:.8;transform:scale(1)}}.tts-divider{background:#0000001a;width:1px;height:24px}@media (prefers-color-scheme:dark){.tts-divider{background:#ffffff26}}.tts-speed-dial-container{position:relative}.tts-speed-btn{border:1px solid var(--glass-border-light);color:var(--text-muted-light);cursor:pointer;white-space:nowrap;background:0 0;border-radius:16px;padding:4px 10px;font-size:.85rem;font-weight:700;transition:all .2s}@media (prefers-color-scheme:dark){.tts-speed-btn{border-color:var(--glass-border-dark);color:var(--text-muted-dark)}}.tts-speed-btn:hover{color:var(--color-primary);border-color:var(--color-primary);background:#3b82f61a}.tts-speed-menu{border:1px solid var(--glass-border-light);z-index:2200;background:#fffffff2;border-radius:16px;flex-direction:column;gap:4px;min-width:65px;padding:6px;animation:.2s cubic-bezier(.25,.8,.25,1) forwards slideUpSpeed;display:flex;position:absolute;bottom:45px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000026}@keyframes slideUpSpeed{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-color-scheme:dark){.tts-speed-menu{border-color:var(--glass-border-dark);background:#1e293bf2}}.tts-speed-option{color:var(--text-main-light);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:8px;padding:6px 10px;font-size:.8rem;font-weight:600;transition:all .15s}@media (prefers-color-scheme:dark){.tts-speed-option{color:var(--text-main-dark)}}.tts-speed-option:hover{color:var(--color-primary);background:#3b82f61a}.tts-speed-option.active{background:var(--color-primary);color:#fff!important}.tts-progress{color:var(--text-muted-light);padding-right:4px;font-family:monospace;font-size:.8rem;font-weight:700}@media (prefers-color-scheme:dark){.tts-progress{color:var(--text-muted-dark)}}.settings-api-input{border:1px solid var(--glass-border-light);background:#fffc;border-radius:10px;width:180px;padding:8px 12px;font-family:monospace;font-size:.85rem;transition:all .2s}@media (prefers-color-scheme:dark){.settings-api-input{border-color:var(--glass-border-dark);color:#fff;background:#ffffff0d}}.settings-api-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #3b82f633}.floating-trans-card{-webkit-backdrop-filter:blur(12px);color:#1f2937;background:#ffffffd9;border:1px solid #fff6;border-radius:12px;flex-direction:column;gap:8px;padding:12px 15px;font-family:Outfit,sans-serif;transition:background .3s,color .3s,border-color .3s,transform .3s;display:flex;box-shadow:0 8px 32px #0000001f;box-sizing:border-box!important}[data-theme=dark] .floating-trans-card{color:#f3f4f6;background:#111827d9;border-color:#ffffff14}[data-theme=obsidian] .floating-trans-card{color:#e5e7eb;background:#000000e6;border-color:#ffffff0d}.trans-card-content{font-size:.95rem;line-height:1.5;overflow-y:auto}.trans-card-footer{border-top:1px solid #0000000f;justify-content:space-between;align-items:center;margin-top:4px;padding-top:6px;display:flex}[data-theme=dark] .trans-card-footer,[data-theme=obsidian] .trans-card-footer{border-top-color:#ffffff14}.trans-dots{gap:4px;display:flex}.trans-dots .dot{opacity:.4;background:#9ca3af;border-radius:50%;width:5px;height:5px;transition:all .2s}.trans-dots .dot.active{opacity:1;background:#3b82f6;border-radius:2px;width:12px}[data-theme=dark] .trans-dots .dot.active,[data-theme=obsidian] .trans-dots .dot.active{background:#60a5fa}.trans-mode-label{text-transform:uppercase;letter-spacing:.05em;color:#6b7280;font-size:.75rem;font-weight:600}[data-theme=dark] .trans-mode-label,[data-theme=obsidian] .trans-mode-label{color:#9ca3af}.loading-dots{color:#6b7280;align-items:center;gap:5px;font-size:.9rem;font-style:italic;display:flex}@media screen and (width>=800px){.dict-panel{display:none!important}.reader-main-layout{flex-direction:row;width:100vw;height:100vh;display:flex;overflow:hidden}.reader-container.mode-paginated .epub-viewer,.reader-container.mode-scrolled .epub-viewer,.reader-container.mode-chapter .epub-viewer,.epub-viewer{max-width:924px!important}.desktop-sidebar{border-left:1px solid var(--glass-border);background:var(--color-surface-solid);width:380px;min-width:380px;max-width:380px;height:100vh;box-shadow:var(--glass-shadow);color:var(--text-main);z-index:1000;flex-direction:column;transition:all .3s;display:flex}.desktop-sidebar-pane{flex-direction:column;flex:1;height:50%;display:flex;overflow:hidden}.desktop-sidebar-pane.reverso-pane{border-bottom:1px solid var(--glass-border)}.pane-header{background:#00000005;border-bottom:1px solid #0000000d;justify-content:space-between;align-items:center;height:48px;min-height:48px;padding:0 15px;display:flex}[data-theme=dark] .pane-header,[data-theme=obsidian] .pane-header{background:#ffffff05;border-bottom-color:#ffffff0d}.pane-header h3{color:var(--color-primary);margin:0;font-size:.95rem;font-weight:700}.pane-header.tabbed-header{background:0 0;padding:0}.pane-tabs{box-sizing:border-box;background:#00000004;border-bottom:1px solid #00000014;width:100%;height:38px;margin:0;padding:6px 15px 0;display:flex}[data-theme=dark] .pane-tabs,[data-theme=obsidian] .pane-tabs{background:#ffffff03;border-bottom-color:#ffffff14}.pane-tab{cursor:pointer;height:100%;color:var(--text-muted-light);z-index:1;background:#0000000d;border:1px solid #0000;border-radius:8px 8px 0 0;justify-content:center;align-items:center;margin-bottom:-1px;margin-right:4px;padding:0 16px;font-size:.85rem;font-weight:600;transition:all .15s;display:flex}[data-theme=dark] .pane-tab{color:var(--text-muted-dark);background:#0003}[data-theme=obsidian] .pane-tab{color:var(--text-muted-dark);background:#ffffff08}.pane-tab:hover:not(.active){color:var(--text-main-light);background:#0000001a}[data-theme=dark] .pane-tab:hover:not(.active){color:var(--text-main-dark);background:#0000004d}[data-theme=obsidian] .pane-tab:hover:not(.active){color:var(--text-main-dark);background:#ffffff0f}.pane-tab.active{color:var(--color-primary);background:var(--color-surface-light,#fff);border-color:#00000014 #00000014 #0000;font-weight:700;box-shadow:0 -2px 6px #00000005}[data-theme=dark] .pane-tab.active{color:var(--color-primary-dark,#3b82f6);background:var(--color-surface-dark,#1e293b);border-color:#ffffff14 #ffffff14 #0000;box-shadow:0 -2px 6px #00000026}[data-theme=obsidian] .pane-tab.active{color:var(--color-primary-dark,#3b82f6);background:#000;border-color:#ffffff0f #ffffff0f #0000}.pane-content-scroll{box-sizing:border-box;flex:1;padding:15px;overflow-y:auto}.pane-content{flex-direction:column;gap:12px;display:flex}.llm-explanation-content{font-size:.9rem;line-height:1.6}.llm-explanation-content p{margin-bottom:10px}.desktop-sidebar-resizer{cursor:ew-resize;z-index:1010;background:#0000000d;width:6px;min-width:6px;margin-left:-3px;margin-right:-3px;transition:background .2s;position:relative}[data-theme=dark] .desktop-sidebar-resizer,[data-theme=obsidian] .desktop-sidebar-resizer{background:#ffffff0d}.desktop-sidebar-resizer:hover,.desktop-sidebar-resizer:active{background:var(--color-primary)!important}.epub-viewer.resizing-active iframe{pointer-events:none!important}.reader-left-workspace{flex-direction:column;flex:1;justify-content:space-between;height:100vh;display:flex;position:relative;overflow:hidden}}@media screen and (width<=799px){.desktop-sidebar{display:none!important}.reader-main-layout{width:100%;height:100%;display:block}.reader-left-workspace{flex-direction:column;justify-content:space-between;width:100%;height:100%;display:flex;position:relative}}.placeholder-pane-message{text-align:center;box-sizing:border-box;height:100%;color:var(--text-muted-light);flex-direction:column;justify-content:center;align-items:center;padding:40px 20px;animation:.5s ease-out fadeIn;display:flex}[data-theme=dark] .placeholder-pane-message,[data-theme=obsidian] .placeholder-pane-message{color:var(--text-muted-dark)}.placeholder-icon{opacity:.8;margin-bottom:16px;font-size:2.5rem;animation:2s ease-in-out infinite pulse-placeholder}.placeholder-pane-message h4{color:var(--color-primary);margin:0 0 10px;font-size:1.1rem;font-weight:600}.placeholder-pane-message p{opacity:.85;max-width:240px;margin:0;font-size:.88rem;line-height:1.5}@keyframes pulse-placeholder{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}to{opacity:.7;transform:scale(1)}}.concordance-view{flex-direction:column;gap:12px;height:100%;display:flex}.concordance-header{border-bottom:1px solid var(--glass-border);flex-direction:column;gap:4px;padding-bottom:10px;display:flex}.concordance-header h4{color:var(--text-main);align-items:center;gap:6px;margin:0;font-size:.95rem;font-weight:700;display:flex}.concordance-header .lemma-tag{color:var(--color-primary);background:#3b82f614;border:1px solid #3b82f626;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:.88rem}.concordance-header .concordance-count{color:var(--text-muted-light);font-size:.76rem}[data-theme=dark] .concordance-header .concordance-count,[data-theme=obsidian] .concordance-header .concordance-count{color:var(--text-muted-dark)}.concordance-list-scroll{flex-direction:column;gap:8px;max-height:calc(100vh - 275px);padding-right:4px;display:flex;overflow-y:auto}.concordance-list-scroll::-webkit-scrollbar{width:5px}.concordance-list-scroll::-webkit-scrollbar-track{background:0 0}.concordance-list-scroll::-webkit-scrollbar-thumb{background:#00000026;border-radius:10px}[data-theme=dark] .concordance-list-scroll::-webkit-scrollbar-thumb{background:#ffffff26}[data-theme=obsidian] .concordance-list-scroll::-webkit-scrollbar-thumb{background:#ffffff26}.concordance-row{background:var(--color-bg-card,#00000004);border:1px solid var(--glass-border);cursor:pointer;border-radius:8px;padding:10px 12px;transition:all .2s}[data-theme=dark] .concordance-row,[data-theme=obsidian] .concordance-row{background:var(--color-bg-card,#ffffff04)}.concordance-row:hover{background:#3b82f608;border-color:#3b82f64d;transform:translate(2px)}.concordance-row.active{border-color:var(--color-primary);background:#3b82f614;box-shadow:0 1px 3px #3b82f626}.concordance-context{color:var(--text-main);word-break:break-word;font-size:.8rem;line-height:1.45}.concordance-mark{color:var(--text-main);background-color:#ffd70059;border:1px solid #ffd70099;border-radius:3px;padding:1px 4px;font-weight:700}[data-theme=dark] .concordance-mark,[data-theme=obsidian] .concordance-mark{background-color:#ffd70040;border-color:#ffd70066}.concordance-empty{color:var(--text-muted-light);text-align:center;padding:30px 10px;font-size:.85rem;font-style:italic}[data-theme=dark] .concordance-empty,[data-theme=obsidian] .concordance-empty{color:var(--text-muted-dark)}.generator-container{width:100%;max-width:1200px;margin:0 auto;padding:1rem}.generator-header{align-items:center;gap:2rem;margin-bottom:2rem;padding:1.5rem 2rem;display:flex}.generator-header h1{color:var(--color-primary);margin:0;font-size:2rem}.back-btn{color:var(--color-primary);border:1px solid var(--color-primary);background:0 0}.back-btn:hover{color:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:none;background:#3b82f61a;transform:translate(-4px)}.upload-view,.align-view,.loading-view,.success-view,.error-view{padding:2.5rem}.upload-view h2,.align-view h2,.loading-view h2,.success-view h2,.error-view h2{text-align:center;margin-top:0;margin-bottom:1.5rem;font-size:1.6rem}.input-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:2rem;display:grid}.upload-box{border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition-smooth);background:#ffffff05;border:2px dashed #3b82f64d;padding:3rem 2rem}.upload-box:hover{border-color:var(--color-primary);background:#3b82f60d;transform:translateY(-4px)}.box-icon{margin-bottom:1rem;font-size:3rem;display:block}.upload-box h3{margin:0 0 .5rem;font-size:1.2rem}.upload-box p{color:var(--text-muted-light);word-break:break-all;margin:0;font-size:.95rem}@media (prefers-color-scheme:dark){.upload-box p{color:var(--text-muted-dark)}}.settings-section,.deployment-section{border-top:1px solid #0000001a;margin-top:2rem;padding-top:2rem}@media (prefers-color-scheme:dark){.settings-section,.deployment-section{border-top-color:#ffffff1a}}.deployment-section h3{color:var(--color-accent);margin-bottom:1.5rem;font-size:1.2rem}.toggle-row{cursor:pointer;align-items:center;gap:.75rem;margin-bottom:1.25rem;font-size:.95rem;font-weight:500;display:flex}.toggle-row input[type=checkbox]{cursor:pointer;width:18px;height:18px}.mt-subpanel{border-radius:var(--radius-md);background:#3b82f60d;border:1px solid #3b82f61a;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin-top:1rem;margin-bottom:1.5rem;padding:1.5rem;display:grid}.input-field{flex-direction:column;gap:.5rem;display:flex}.input-field label{color:var(--color-primary);font-size:.85rem;font-weight:600}.input-field input,.input-field select{border-radius:var(--radius-sm);color:inherit;background:#fff;border:1px solid #00000026;padding:10px 12px;font-family:Inter,sans-serif;font-size:.95rem}@media (prefers-color-scheme:dark){.input-field input,.input-field select{background:#1e293b;border-color:#ffffff26}}.input-field input:focus,.input-field select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 2px #3b82f633}.action-btn{width:100%;margin-top:2rem;padding:14px;font-size:1.1rem}.subtitle{text-align:center;color:var(--text-muted-light);margin-bottom:2rem}@media (prefers-color-scheme:dark){.subtitle{color:var(--text-muted-dark)}}.alignment-actions{justify-content:center;gap:1rem;margin-bottom:2rem;display:flex}.warning-btn{color:#f59e0b;background:0 0;border:1px solid #f59e0b}.warning-btn:hover{box-shadow:none;background:#f59e0b1a}.matrix-columns{grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2.5rem;display:grid}@media (width<=768px){.matrix-columns{grid-template-columns:1fr}}.matrix-col{flex-direction:column;display:flex}.matrix-col h3{border-bottom:2px solid var(--color-primary);margin-bottom:1rem;padding-bottom:.5rem;font-size:1.1rem}.chapter-list{flex-direction:column;gap:.75rem;max-height:500px;padding-right:.5rem;display:flex;overflow-y:auto}.chapter-card{border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:#fff6;border:1px solid #0000001a;flex-direction:column;padding:1rem;display:flex;position:relative}@media (prefers-color-scheme:dark){.chapter-card{background:#1e293b66;border-color:#ffffff0d}}.chapter-card.active{background:#10b9810d;border-left:5px solid #10b981}.chapter-card.inactive{opacity:.7;background:#ef44440d;border-left:5px solid #ef4444}.chapter-card h4{margin:0 0 .25rem;padding-right:20px;font-size:.95rem;font-weight:600}.chapter-card .slug{color:var(--text-muted-light);font-family:monospace;font-size:.75rem}@media (prefers-color-scheme:dark){.chapter-card .slug{color:var(--text-muted-dark)}}.chapter-card.draggable{cursor:grab}.chapter-card.draggable:active{cursor:grabbing}.drag-handle{color:var(--text-muted-light);pointer-events:none;font-size:1.1rem;position:absolute;top:50%;right:15px;transform:translateY(-50%)}.chapter-card.dragging{opacity:.4;border:2px dashed var(--color-primary)}.chapter-card.drag-over{border-top:3px solid var(--color-accent);padding-top:1.25rem}.compile-btn{background:linear-gradient(135deg, var(--color-primary), var(--color-accent))}.compile-btn:hover{background:linear-gradient(135deg, var(--color-primary-hover), var(--color-accent))}.loading-view{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:350px;display:flex}.spinner{border:5px solid #3b82f626;border-top-color:var(--color-primary);border-radius:50%;width:50px;height:50px;margin-bottom:2rem;animation:1s linear infinite spin}.progress-msg{color:var(--color-primary);margin-bottom:1rem;font-size:1.2rem;font-weight:500}.info-text{color:var(--text-muted-light);max-width:500px;font-size:.9rem}@media (prefers-color-scheme:dark){.info-text{color:var(--text-muted-dark)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.success-view,.error-view{text-align:center;flex-direction:column;align-items:center;padding:4rem 2rem;display:flex}.success-icon,.error-icon{border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:1.5rem;font-size:4rem;display:flex}.success-icon{color:#10b981;background:#10b9811a}.error-icon{color:#ef4444;background:#ef44441a}.error-msg{color:#ef4444;max-width:600px;margin-bottom:2rem;font-weight:500}
