*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f2f2f7;height:100vh;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;flex-direction:column;height:100vh}.toolbar{background:#fff;border-bottom:1px solid #e5e5ea;padding:.75rem 1.5rem;display:flex;align-items:center;gap:.75rem;position:relative}.toolbar-actions{display:flex;flex-direction:column;gap:.5rem;margin-left:auto;align-items:flex-end}.toolbar-actions-row{display:flex;align-items:center;gap:.75rem}.toolbar h1{font-size:.875rem;color:#1d1d1f;font-weight:500;line-height:1.3;letter-spacing:-.01em}.toolbar-left{display:flex;align-items:center;gap:.75rem;margin-right:auto}.toolbar-center{position:absolute;left:50%;transform:translate(-50%)}.toolbar-right{display:flex;align-items:center;gap:.75rem;margin-left:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.375rem .75rem;border:1px solid #d1d1d6;border-radius:6px;background:#fff;cursor:pointer;font-size:.8125rem;font-weight:400;color:#1d1d1f;transition:all .1s ease;line-height:1.3;min-height:28px;outline:none;user-select:none;-webkit-user-select:none}.btn:hover{background:#f2f2f7;border-color:#c7c7cc}.btn:active{background:#e5e5ea;border-color:#b5b5ba;transform:scale(.98)}.btn:focus{box-shadow:0 0 0 3px #007aff26;border-color:#007aff}.btn-primary{background:#007aff;color:#fff;border-color:#007aff;font-weight:500}.btn-primary:hover{background:#0066d4;border-color:#0066d4}.btn-primary:active{background:#0051d5;border-color:#0051d5;transform:scale(.98)}.btn-primary:focus{box-shadow:0 0 0 3px #007aff40}.btn:disabled{opacity:.5;cursor:not-allowed;background:#f2f2f7;border-color:#d1d1d6;color:#8e8e93}.btn:disabled:hover{background:#f2f2f7;border-color:#d1d1d6;transform:none}.command-palette-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border:1px solid #d1d1d6;border-radius:6px;background:#fff;cursor:pointer;font-size:.8125rem;font-weight:400;color:#1d1d1f;transition:all .1s ease;line-height:1.3;min-height:28px;outline:none;user-select:none;-webkit-user-select:none}.command-palette-btn:hover{background:#f2f2f7;border-color:#c7c7cc}.command-palette-btn:active{background:#e5e5ea;border-color:#c7c7cc}.command-palette-btn:focus{outline:2px solid #007aff;outline-offset:2px}.command-palette-icon{width:16px;height:16px;stroke:currentColor;flex-shrink:0}.command-palette-text{font-size:.8125rem;font-weight:400;color:inherit}.command-palette-shortcut{font-size:.6875rem;font-weight:500;color:#8e8e93;background:#f2f2f7;border:1px solid #e5e5ea;border-radius:3px;padding:.125rem .375rem;margin-left:auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1}.btn-group{position:relative;display:inline-block}.btn-submenu{position:absolute;top:100%;left:0;background:#fff;border:1px solid #e5e5ea;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:1000;min-width:180px;padding:.25rem 0;margin-top:4px;display:none}.btn-submenu.show{display:block}.btn-submenu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;border:none;background:none;text-align:left;cursor:pointer;font-size:.8125rem;color:#1d1d1f;transition:all .1s ease;line-height:1.3}.btn-submenu-item:hover{background:#f2f2f7}.btn-submenu-item:active{background:#e5e5ea}.thumbnail-size-control{display:flex;align-items:center;gap:.5rem;margin-left:auto;padding:.375rem .75rem;background:#f2f2f7;border-radius:6px;border:1px solid #e5e5ea}.size-label{font-size:.75rem;color:#8e8e93;font-weight:400;white-space:nowrap}.size-slider{width:80px;height:4px;-webkit-appearance:none;appearance:none;background:#d1d1d6;border-radius:2px;outline:none;cursor:pointer}.size-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;background:#007aff;border-radius:50%;cursor:pointer;transition:all .2s ease}.size-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 0 0 4px #007aff1a}.size-slider::-moz-range-thumb{width:16px;height:16px;background:#007aff;border-radius:50%;cursor:pointer;border:none;transition:all .2s ease}.size-value{font-size:.75rem;color:#1d1d1f;font-weight:500;min-width:40px;text-align:right}.features-header{margin-bottom:3rem;text-align:center;width:100%}.features-title{font-size:1rem;font-weight:500;color:#1d1d1f;margin-bottom:1rem;margin-top:0}.features-list{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;max-width:600px;margin:0 auto}.feature-item{display:flex;flex-direction:column;align-items:center;gap:.5rem}.feature-icon{font-size:.75rem;line-height:1;color:#007aff;font-weight:500;background:#f2f8ff;padding:.375rem .5rem;border-radius:4px;margin-bottom:.375rem;min-width:1.5rem;text-align:center}.feature-item span{font-size:.8125rem;color:#8e8e93;font-weight:400}.drop-zone:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 3px #007aff40}.drop-zone:active{transform:scale(.98)}.main-content{display:flex;flex:1;overflow:hidden;min-height:0;background:#f2f2f7;height:calc(100vh - 80px)}@media(max-width:768px){.main-content{flex-direction:column}}.thumbnail-panel{width:180px;min-width:180px;max-width:400px;background:#fff;border-right:1px solid #e5e5ea;overflow-y:auto;overflow-x:hidden;padding:1rem;transition:width .2s ease;position:relative;height:100%}.resize-handle{position:absolute;top:0;right:-4px;width:8px;height:100%;cursor:ew-resize;background:transparent;transition:background-color .2s ease;z-index:10}.resize-handle:hover{background:#007aff33}.resize-handle:active{background:#007aff66}.resize-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:40px;background:#c7c7cc;border-radius:1px;opacity:0;transition:opacity .2s ease}.resize-handle:hover:after{opacity:1}.thumbnail-list{display:flex;flex-direction:column;gap:.5rem}.thumbnail-item{position:relative;padding:.5rem;border:2px solid transparent;border-radius:4px;cursor:pointer;transition:all .2s;background:#f8f9fa;width:100%;max-width:200px;aspect-ratio:1 / 1.4;margin:0 auto}.thumbnail-item:hover{border-color:#007bff;background:#e3f2fd}.thumbnail-item.selected{border-color:#007aff;background:#f2f8ff;position:relative}.thumbnail-item.selected:before{content:"";position:absolute;inset:0;border:2px solid #007aff;border-radius:4px;pointer-events:none}.thumbnail-item.keyboard-selected{animation:thumbnailPulse .3s ease-out}.thumbnail-item.multi-selected{border-color:#34c759;background:#f0fff4;position:relative}.thumbnail-item.multi-selected:before{content:"";position:absolute;inset:0;border:2px solid #34c759;border-radius:4px;pointer-events:none}@keyframes thumbnailPulse{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}.thumbnail-item.dragging{opacity:.5}.thumbnail{width:calc(100% - 16px);height:auto;max-width:100%;border-radius:2px;background:#fff;box-shadow:0 1px 3px #0000001a;object-fit:contain;display:block;margin:0 auto}.page-number{position:absolute;bottom:.5rem;right:.5rem;background:#000000b3;color:#fff;padding:.2rem .4rem;border-radius:2px;font-size:.75rem;font-weight:700}.rotation-badge{position:absolute;top:.5rem;left:.5rem;background:#007affe6;color:#fff;padding:.15rem .35rem;border-radius:3px;font-size:.6875rem;font-weight:600;pointer-events:none;z-index:5}.viewer-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background:#fafafa;min-height:0;overflow:visible;height:auto}.pdf-viewer{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:2rem;width:100%;max-width:min(90vw,1200px);height:auto;max-height:none;display:flex;flex-direction:column;align-items:center;overflow:visible;transition:all .3s ease;flex-shrink:0}@media(max-width:768px){.pdf-viewer{padding:1rem;max-width:95vw;max-height:70vh}.thumbnail-panel{width:150px;min-width:150px;max-width:250px}.resize-handle{width:6px}}@media(max-width:480px){.pdf-viewer{padding:.5rem;border-radius:4px}}.pdf-page{border:1px solid #ddd;border-radius:4px;display:block;margin:0 auto;box-shadow:0 2px 8px #0000001a;max-width:100%;width:auto;height:auto;object-fit:contain}.page-info{margin-top:1rem;color:#666;font-size:.875rem;text-align:center;padding:0 1rem;word-wrap:break-word}.empty-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:2rem}.preview-placeholder{text-align:center;color:#999;padding:3rem;border:2px dashed #ddd;border-radius:8px;background:#fafafa}.loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #007bff;border-radius:50%;animation:spin 1s linear infinite;z-index:10}@media(max-width:768px){.loading{width:32px;height:32px;border-width:3px}}@keyframes spin{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}.context-menu{position:absolute;background:#fff;border:1px solid #e5e5ea;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:1000;min-width:140px;padding:.25rem 0;backdrop-filter:blur(10px)}.context-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:none;text-align:left;cursor:pointer;font-size:.8125rem;color:#1d1d1f;font-weight:400;transition:all .1s ease;line-height:1.3}.context-menu-item:hover{background:#007aff;color:#fff}.context-menu-item:active{background:#0051d5}.drag-handle{position:absolute;top:.5rem;left:.5rem;width:20px;height:20px;background:#0000004d;border-radius:2px;cursor:grab;display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px}.drag-handle:active{cursor:grabbing}.drag-handle:before{content:"⋮⋮";line-height:1}.drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 3rem;background:#fff;border-radius:8px;border:1px solid #e5e5ea;transition:all .2s cubic-bezier(.4,0,.2,1);cursor:pointer;min-height:300px;position:relative;width:100%}.drop-zone:hover{border-color:#c7c7cc;background:#fafafa}.drop-zone.drag-over{border-color:#007aff;background:#f2f8ff;box-shadow:0 0 0 4px #007aff1a}.drop-zone-icon{margin-bottom:2rem;opacity:.6;transition:opacity .2s ease}.drop-zone:hover .drop-zone-icon{opacity:.8}.drop-zone.drag-over .drop-zone-icon{opacity:1}.drop-zone-icon svg{filter:none}.drop-zone-content{margin-bottom:2rem}.drop-zone-title{font-size:1.125rem;font-weight:500;color:#1d1d1f;margin-bottom:.5rem;line-height:1.4}.drop-zone-subtitle{font-size:.875rem;color:#8e8e93;line-height:1.5}.drop-zone-divider{width:60px;height:1px;background:#e5e5ea;margin:1.5rem 0}.drop-zone-features{display:flex;align-items:center;gap:1rem;font-size:.75rem;color:#8e8e93}.feature{white-space:nowrap}.feature-divider{width:1px;height:12px;background:#e5e5ea}ninja-keys{--ninja-keys-z-index: 10000;--ninja-backdrop-color: rgba(0, 0, 0, .5);--ninja-modal-background: #ffffff;--ninja-modal-shadow: 0 16px 70px rgba(0, 0, 0, .2);--ninja-border-radius: 12px;--ninja-top: 25%;--ninja-width: 600px;--ninja-max-height: 400px;--ninja-overflow-y: auto;--ninja-placeholder-color: #8e8e93;--ninja-text-color: #1d1d1f;--ninja-accent-color: #007aff;--ninja-subtle-color: #f2f2f7;--ninja-separator-color: #e5e5ea;--ninja-group-text-color: #8e8e93;--ninja-group-background: #f2f2f7;--ninja-group-border-radius: 8px;--ninja-item-border-radius: 8px;--ninja-item-height: 48px;--ninja-item-padding: 0 16px;--ninja-item-gap: 8px;--ninja-item-hover-background: #f2f8ff;--ninja-item-hover-color: #1d1d1f;--ninja-item-hover-accent-color: #007aff;--ninja-item-icon-hover-color: #007aff;--ninja-item-subtitle-hover-color: #5a5a5f;--ninja-item-kbd-hover-color: #1d1d1f;--ninja-item-kbd-hover-background: #f2f2f7;--ninja-item-icon-size: 20px;--ninja-item-icon-color: #8e8e93;--ninja-item-icon-margin-right: 12px;--ninja-item-title-font-size: 16px;--ninja-item-title-font-weight: 400;--ninja-item-subtitle-font-size: 14px;--ninja-item-subtitle-color: #8e8e93;--ninja-item-kbd-font-size: 12px;--ninja-item-kbd-color: #8e8e93;--ninja-item-kbd-background: #ffffff;--ninja-item-kbd-border: 1px solid #e5e5ea;--ninja-item-kbd-border-radius: 4px;--ninja-item-kbd-padding: 2px 6px;--ninja-input-height: 56px;--ninja-input-font-size: 18px;--ninja-input-padding: 0 16px;--ninja-input-border-radius: 12px;--ninja-input-border: 1px solid #e5e5ea;--ninja-input-focus-border: 2px solid #007aff;--ninja-input-focus-outline: none;--ninja-input-background: #ffffff;--ninja-loader-color: #007aff;--ninja-loader-size: 20px;--ninja-loader-thickness: 2px;--ninja-backdrop-filter: blur(10px);--ninja-transition: all .2s ease;--ninja-scrollbar-width: 6px;--ninja-scrollbar-track: transparent;--ninja-scrollbar-thumb: #c7c7cc;--ninja-scrollbar-thumb-hover: #aeaeb2}@media(prefers-color-scheme:dark){ninja-keys{--ninja-modal-background: #1c1c1e;--ninja-text-color: #ffffff;--ninja-subtle-color: #2c2c2e;--ninja-separator-color: #38383a;--ninja-group-background: #2c2c2e;--ninja-group-text-color: #8e8e93;--ninja-item-hover-background: #0a2d4d;--ninja-item-hover-color: #ffffff;--ninja-item-icon-hover-color: #64b5f6;--ninja-item-subtitle-hover-color: #b0b0b5;--ninja-item-kbd-hover-color: #ffffff;--ninja-item-kbd-hover-background: #38383a;--ninja-input-background: #1c1c1e;--ninja-input-border: 1px solid #38383a;--ninja-item-kbd-background: #2c2c2e;--ninja-item-kbd-border: 1px solid #38383a;--ninja-backdrop-color: rgba(0, 0, 0, .7);--ninja-placeholder-color: #8e8e93;--ninja-item-icon-color: #8e8e93;--ninja-item-subtitle-color: #8e8e93;--ninja-item-kbd-color: #8e8e93;--ninja-scrollbar-thumb: #636366;--ninja-scrollbar-thumb-hover: #48484a}}body.dark-mode{background-color:#000;color:#fff}body.dark-mode .app{background-color:#000}body.dark-mode .toolbar{background:#1c1c1e;border-bottom:1px solid #38383a}body.dark-mode .toolbar h1{color:#fff}body.dark-mode .btn{background:#2c2c2e;border-color:#38383a;color:#fff}body.dark-mode .btn:hover{background:#38383a;border-color:#48484a}body.dark-mode .btn:active{background:#48484a;border-color:#58585a}body.dark-mode .btn:focus{box-shadow:0 0 0 3px #007aff40;border-color:#007aff}body.dark-mode .btn-primary{background:#007aff;color:#fff;border-color:#007aff}body.dark-mode .btn-primary:hover{background:#0066d4;border-color:#0066d4}body.dark-mode .btn-primary:active{background:#0051d5;border-color:#0051d5}body.dark-mode .btn-primary:focus{box-shadow:0 0 0 3px #007aff59}body.dark-mode .btn:disabled{opacity:.5;background:#2c2c2e;border-color:#38383a;color:#8e8e93}body.dark-mode .command-palette-btn{background:#2c2c2e;border-color:#38383a;color:#fff}body.dark-mode .command-palette-btn:hover{background:#38383a;border-color:#48484a}body.dark-mode .command-palette-btn:active{background:#48484a;border-color:#58585a}body.dark-mode .command-palette-shortcut{color:#8e8e93;background:#1c1c1e;border-color:#38383a}body.dark-mode .main-content{background:#000}body.dark-mode .thumbnail-panel{background:#1c1c1e;border-right:1px solid #38383a}body.dark-mode .thumbnail-item{background:#2c2c2e;border-color:transparent}body.dark-mode .thumbnail-item:hover,body.dark-mode .thumbnail-item.selected{border-color:#007aff;background:#0a2d4d}body.dark-mode .thumbnail-item.multi-selected{border-color:#34c759;background:#0a3d1a}body.dark-mode .thumbnail{background:#fff;box-shadow:0 1px 3px #0000004d}body.dark-mode .page-number{background:#ffffffe6;color:#000}body.dark-mode .rotation-badge{background:#007afff2}body.dark-mode .viewer-panel{background:#000}body.dark-mode .pdf-viewer{background:#1c1c1e;box-shadow:0 4px 12px #00000080}body.dark-mode .pdf-page{border:1px solid #38383a;box-shadow:0 2px 8px #0000004d}body.dark-mode .page-info{color:#b0b0b5}body.dark-mode .empty-preview{background:#000}body.dark-mode .preview-placeholder{color:#8e8e93;border:2px dashed #38383a;background:#1c1c1e}body.dark-mode .drop-zone{background:#1c1c1e;border:1px solid #38383a}body.dark-mode .drop-zone:hover{border-color:#48484a;background:#2c2c2e}body.dark-mode .drop-zone.drag-over{border-color:#007aff;background:#0a2d4d;box-shadow:0 0 0 4px #007aff33}body.dark-mode .drop-zone-title{color:#fff}body.dark-mode .drop-zone-subtitle{color:#8e8e93}body.dark-mode .features-header,body.dark-mode .features-title{color:#fff}body.dark-mode .feature-item span{color:#8e8e93}body.dark-mode .feature-icon{color:#64b5f6;background:#0a2d4d}body.dark-mode .status-bar{background:#1c1c1e;border-top:1px solid #38383a;color:#8e8e93}body.dark-mode .context-menu{background:#1c1c1e;border:1px solid #38383a;box-shadow:0 4px 12px #00000080}body.dark-mode .context-menu-item{color:#fff}body.dark-mode .context-menu-item:hover{background:#007aff;color:#fff}body.dark-mode .context-menu-item:active{background:#0051d5}body.dark-mode .btn-submenu{background:#1c1c1e;border:1px solid #38383a;box-shadow:0 4px 12px #00000080}body.dark-mode .btn-submenu-item{color:#fff}body.dark-mode .btn-submenu-item:hover{background:#0a2d4d}body.dark-mode .btn-submenu-item:active{background:#0051d5}.save-options-btn{padding-left:6px;padding-right:6px;border-left:1px solid rgba(0,0,0,.1)}.save-submenu{right:0;left:auto;min-width:160px}.rotate-submenu{padding:.25rem;gap:.25rem}.btn-submenu.show.rotate-submenu{display:flex}.rotate-submenu .btn-submenu-item{justify-content:center;padding:.5rem;flex:1;min-width:44px}.rotation-badge{position:absolute;top:4px;right:4px;background:#007bffe6;color:#fff;font-size:10px;font-weight:600;padding:2px 5px;border-radius:4px;pointer-events:none;z-index:2}body.dark-mode .rotation-badge{background:#0a84ffe6}.extract-submenu{min-width:220px;padding:1rem;right:0;left:auto}.extract-form{display:flex;flex-direction:column;gap:.75rem}.extract-input-group{display:flex;flex-direction:column;gap:.25rem}.extract-input-group label{font-size:.75rem;color:#666;font-weight:500}.extract-input{padding:.5rem;border:1px solid #e5e5ea;border-radius:4px;font-size:.875rem;width:100%;box-sizing:border-box}.extract-input:focus{outline:none;border-color:#007aff;box-shadow:0 0 0 2px #007aff33}.extract-input.error{border-color:#ff3b30}.extract-error{font-size:.75rem;color:#ff3b30;min-height:1rem}.split-line{position:relative;width:100%;height:4px;margin:2px 0;cursor:pointer;display:flex;align-items:center;justify-content:center}.split-line-content{display:flex;align-items:center;gap:4px}.split-line-bar{position:absolute;width:100%;height:2px;background:transparent;transition:background .15s ease}.split-line:hover .split-line-bar{background:#ff69b4;height:4px}.split-btn{position:relative;z-index:10;padding:2px 8px;font-size:.6875rem;background:#ff69b4;color:#fff;border:none;border-radius:3px;cursor:pointer;opacity:0;transform:scale(.8);transition:opacity .2s ease,transform .2s ease;pointer-events:none;white-space:nowrap}.split-btn:hover{background:#ff1493}.split-remove-btn{background:#f44;opacity:0;transform:scale(.8);pointer-events:none}.split-remove-btn:hover{background:#c00}.split-line.active .split-line-bar{background:#ff1493;height:4px}.split-line.active .split-add-btn,.split-line.active .split-remove-btn,.split-line:hover .split-add-btn{opacity:1;transform:scale(1);pointer-events:auto}.extract-confirm-btn{width:100%;margin-top:.5rem}body.dark-mode .extract-input-group label{color:#8e8e93}body.dark-mode .extract-input{background:#2c2c2e;border-color:#38383a;color:#fff}body.dark-mode .extract-input:focus{border-color:#007aff}body.dark-mode .extract-error{color:#ff453a}body.dark-mode .thumbnail-size-control{background:#2c2c2e;border:1px solid #38383a}body.dark-mode .size-label{color:#8e8e93}body.dark-mode .size-slider{background:#38383a}body.dark-mode .size-slider::-webkit-slider-thumb{background:#007aff}body.dark-mode .size-slider::-moz-range-thumb{background:#007aff}body.dark-mode .size-value{color:#fff}body.dark-mode .loading{border:4px solid #38383a;border-top:4px solid #007aff}body.dark-mode .drag-handle{background:#ffffff4d;color:#000}body.dark-mode .resize-handle:hover{background:#007aff4d}body.dark-mode .resize-handle:active{background:#007aff80}body.dark-mode .resize-handle:after{background:#636366}body.dark-mode .resize-handle:hover:after{background:#007aff}body.dark-mode .drop-zone-divider,body.dark-mode .feature-divider{background:#38383a}body.dark-mode ninja-keys{--ninja-modal-background: #1c1c1e;--ninja-text-color: #ffffff;--ninja-subtle-color: #2c2c2e;--ninja-separator-color: #38383a;--ninja-group-background: #2c2c2e;--ninja-group-text-color: #8e8e93;--ninja-item-hover-background: #0a2d4d;--ninja-item-hover-color: #ffffff;--ninja-item-icon-hover-color: #64b5f6;--ninja-item-subtitle-hover-color: #b0b0b5;--ninja-item-kbd-hover-color: #ffffff;--ninja-item-kbd-hover-background: #38383a;--ninja-input-background: #1c1c1e;--ninja-input-border: 1px solid #38383a;--ninja-item-kbd-background: #2c2c2e;--ninja-item-kbd-border: 1px solid #38383a;--ninja-backdrop-color: rgba(0, 0, 0, .7);--ninja-placeholder-color: #8e8e93;--ninja-item-icon-color: #8e8e93;--ninja-item-subtitle-color: #8e8e93;--ninja-item-kbd-color: #8e8e93;--ninja-scrollbar-thumb: #636366;--ninja-scrollbar-thumb-hover: #48484a}.command-palette{z-index:10000}ninja-keys::part(modal){animation:commandPaletteSlideIn .2s ease-out}ninja-keys::part(item):hover{color:var(--ninja-item-hover-color)!important}ninja-keys::part(item):hover ninja-keys::part(item-icon){color:var(--ninja-item-icon-hover-color)!important}ninja-keys::part(item):hover ninja-keys::part(item-subtitle){color:var(--ninja-item-subtitle-hover-color)!important}ninja-keys::part(item):hover ninja-keys::part(item-kbd){color:var(--ninja-item-kbd-hover-color)!important;background:var(--ninja-item-kbd-hover-background)!important}ninja-keys::part(ninja-action){color:var(--ninja-text-color)!important}ninja-keys::part(ninja-action):hover{color:var(--ninja-item-hover-color)!important}ninja-keys::part(ninja-action) .ninja-title{color:var(--ninja-text-color)!important}ninja-keys::part(ninja-action):hover .ninja-title{color:var(--ninja-item-hover-color)!important}ninja-keys::part(ninja-action) .ninja-hotkey{color:var(--ninja-item-kbd-color)!important;background:var(--ninja-item-kbd-background)!important}ninja-keys::part(ninja-action):hover .ninja-hotkey{color:var(--ninja-item-kbd-hover-color)!important;background:var(--ninja-item-kbd-hover-background)!important}ninja-keys::part(ninja-selected){background:var(--ninja-item-hover-background)!important;color:var(--ninja-item-hover-color)!important}ninja-keys::part(ninja-selected) .ninja-title{color:var(--ninja-item-hover-color)!important}ninja-keys::part(ninja-selected) .ninja-hotkey{color:var(--ninja-item-kbd-hover-color)!important;background:var(--ninja-item-kbd-hover-background)!important}@keyframes commandPaletteSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.file-input{display:none}.status-bar{background:#f8f9fa;border-top:1px solid #e0e0e0;padding:.5rem 1rem;font-size:.75rem;color:#666;display:flex;justify-content:space-between;align-items:center}.confirm-dialog{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.confirm-dialog-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;min-width:300px;max-width:500px;animation:dialogFadeIn .2s ease-out}.confirm-dialog-header{padding:1rem 1.5rem;border-bottom:1px solid #e0e0e0}.confirm-dialog-header h3{margin:0;font-size:1.1rem;color:#333}.confirm-dialog-body{padding:1.5rem}.confirm-dialog-body p{margin:0;color:#666;line-height:1.5}.confirm-dialog-footer{padding:1rem 1.5rem;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;gap:.75rem}.btn-secondary{background:#6c757d;color:#fff;border-color:#6c757d}.btn-secondary:hover{background:#5a6268;border-color:#545b62}.btn-danger{background:#dc3545;color:#fff;border-color:#dc3545}.btn-danger:hover{background:#c82333;border-color:#bd2130}@keyframes dialogFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}#nprogress .bar{background:#007bff;height:3px}#nprogress .peg{box-shadow:0 0 10px #007bff,0 0 5px #007bff}#nprogress .spinner{display:none}#nprogress{z-index:9999}.pdf-canvas.keyboard-nav{animation:pageTransition .2s ease-out}@keyframes pageTransition{0%{opacity:.8;transform:translate(0)}50%{opacity:.6}to{opacity:1;transform:translate(0)}}.pdf-canvas.keyboard-nav-prev{animation:pageTransitionPrev .2s ease-out}@keyframes pageTransitionPrev{0%{opacity:.8;transform:translate(10px)}to{opacity:1;transform:translate(0)}}.pdf-canvas.keyboard-nav-next{animation:pageTransitionNext .2s ease-out}@keyframes pageTransitionNext{0%{opacity:.8;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.pdf-viewer.wheel-navigating{position:relative}.pdf-viewer.wheel-navigating:after{content:"";position:absolute;inset:0;background:#007aff1a;border:2px solid rgba(0,122,255,.3);border-radius:8px;pointer-events:none;animation:wheelNavPulse .3s ease-out}@keyframes wheelNavPulse{0%{opacity:0;transform:scale(.98)}50%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.98)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.thumbnail-placeholder{border-radius:4px}.page-transition-indicator{position:fixed;top:50%;right:2rem;transform:translateY(-50%);background:#000c;color:#fff;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;z-index:1000;opacity:0;transition:opacity .2s ease;pointer-events:none}.page-transition-indicator.show{opacity:1}.language-switcher{position:relative;display:inline-block}.language-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border:1px solid #d1d1d6;border-radius:4px;background:#fff;cursor:pointer;font-size:.75rem;font-weight:400;color:#1c1c1e;transition:all .2s ease;white-space:nowrap;height:24px}.language-btn:hover{background:#f2f2f7;border-color:#c7c7cc}.language-btn:active{background:#e5e5ea;border-color:#b5b5ba;transform:scale(.98)}.language-btn:focus{box-shadow:0 0 0 3px #007aff26;border-color:#007aff}.language-btn[aria-expanded=true]{background:#f2f2f7;border-color:#007aff}.language-btn[aria-expanded=true] .language-arrow{transform:rotate(180deg)}.language-current{font-size:.75rem;font-weight:400;color:inherit}.language-arrow{width:10px;height:10px;transition:transform .2s ease;flex-shrink:0}.language-menu{position:absolute;top:100%;right:0;background:#fff;border:1px solid #e5e5ea;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:1000;min-width:140px;padding:.25rem 0;margin-top:4px;display:none}.language-menu.show{display:block}.language-menu-item{display:block;width:100%;padding:.5rem 1rem;border:none;background:none;text-align:left;cursor:pointer;font-size:.8125rem;color:#1d1d1f;text-decoration:none;transition:all .1s ease;line-height:1.3}.language-menu-item:hover{background:#f2f2f7}.language-menu-item.active{background:#f2f8ff;color:#007aff;font-weight:500}.language-menu-item.active:before{content:"✓";margin-right:.5rem}body.dark-mode .language-btn{background:#2c2c2e;border-color:#38383a;color:#fff}body.dark-mode .language-btn:hover{background:#38383a;border-color:#48484a}body.dark-mode .language-btn:active{background:#48484a;border-color:#58585a}body.dark-mode .language-btn:focus{box-shadow:0 0 0 3px #007aff40;border-color:#007aff}body.dark-mode .language-btn[aria-expanded=true]{background:#38383a}body.dark-mode .language-menu{background:#1c1c1e;border:1px solid #38383a;box-shadow:0 4px 12px #00000080}body.dark-mode .language-menu-item{color:#fff}body.dark-mode .language-menu-item:hover{background:#2c2c2e}body.dark-mode .language-menu-item.active{background:#0a2d4d;color:#64b5f6}@media(prefers-color-scheme:dark){.language-btn{background:#2c2c2e;border-color:#38383a;color:#fff}.language-btn:hover{background:#38383a;border-color:#48484a}.language-menu{background:#1c1c1e;border:1px solid #38383a;box-shadow:0 4px 12px #00000080}.language-menu-item{color:#fff}.language-menu-item:hover{background:#2c2c2e}.language-menu-item.active{background:#0a2d4d;color:#64b5f6}}@media(prefers-color-scheme:dark){body{background-color:#000;color:#fff}.app{background-color:#000}.toolbar{background:#1c1c1e;border-bottom:1px solid #38383a}.toolbar h1{color:#fff}.btn{background:#2c2c2e;border-color:#38383a;color:#fff}.btn:hover{background:#38383a;border-color:#48484a}.btn:active{background:#48484a;border-color:#58585a}.btn:focus{box-shadow:0 0 0 3px #007aff40;border-color:#007aff}.btn-primary{background:#007aff;color:#fff;border-color:#007aff}.btn-primary:hover{background:#0066d4;border-color:#0066d4}.btn-primary:active{background:#0051d5;border-color:#0051d5}.btn-primary:focus{box-shadow:0 0 0 3px #007aff59}.btn:disabled{opacity:.5;background:#2c2c2e;border-color:#38383a;color:#8e8e93}.command-palette-btn{background:#2c2c2e;border-color:#38383a;color:#fff}.command-palette-btn:hover{background:#38383a;border-color:#48484a}.command-palette-btn:active{background:#48484a;border-color:#58585a}.command-palette-shortcut{color:#8e8e93;background:#1c1c1e;border-color:#38383a}.main-content{background:#000}.thumbnail-panel{background:#1c1c1e;border-right:1px solid #38383a}.thumbnail-item{background:#2c2c2e;border-color:transparent}.thumbnail-item:hover{background:#38383a;border-color:#48484a}.thumbnail-item.selected{background:#0a2d4d;border-color:#007aff}.thumbnail-item.multi-selected{background:#1a3a5c;border-color:#5ac8fa}.thumbnail{background:#1c1c1e}.page-number{color:#8e8e93;background:#000000b3}.rotation-badge{background:#007afff2}.viewer-panel,.pdf-viewer{background:#000}.pdf-page{box-shadow:0 2px 8px #ffffff1a}.page-info{color:#8e8e93}.empty-preview{background:#000}.preview-placeholder{background:#1c1c1e;border:2px dashed #38383a;color:#8e8e93}.drop-zone{background:#1c1c1e;border:2px dashed #38383a}.drop-zone:hover{background:#2c2c2e;border-color:#48484a}.drop-zone.drag-over{background:#0a2d4d;border-color:#007aff;box-shadow:0 0 0 3px #007aff33}.drop-zone-title{color:#fff}.drop-zone-subtitle{color:#8e8e93}.features-title,.feature-item span{color:#fff}.feature-icon{background:#2c2c2e;color:#007aff;border:1px solid #38383a}.status-bar{background:#1c1c1e;border-top:1px solid #38383a;color:#8e8e93}.context-menu{background:#2c2c2e;border:1px solid #38383a;box-shadow:0 4px 12px #00000080}.context-menu-item{color:#fff}.context-menu-item:hover{background:#007aff;color:#fff}.context-menu-item:active{background:#0051d5}.btn-submenu{background:#1c1c1e;border:1px solid #38383a;box-shadow:0 4px 12px #00000080}.btn-submenu-item{color:#fff}.btn-submenu-item:hover{background:#0a2d4d}.btn-submenu-item:active{background:#0051d5}.extract-input-group label{color:#8e8e93}.extract-input{background:#2c2c2e;border-color:#38383a;color:#fff}.extract-input:focus{border-color:#007aff}.extract-error{color:#ff453a}.thumbnail-size-control{background:#2c2c2e;border:1px solid #38383a}.size-label{color:#8e8e93}.size-slider{background:#38383a}.size-slider::-webkit-slider-thumb{background:#007aff}.size-slider::-moz-range-thumb{background:#007aff}.size-value{color:#fff}.loading{border:4px solid #38383a;border-top:4px solid #007aff}.drag-handle{background:#ffffff4d;color:#000}.resize-handle:hover{background:#007aff4d}.resize-handle:active{background:#007aff80}.resize-handle:after{background:#ffffff4d}.resize-handle:hover:after{background:#007aff}.drop-zone-divider,.feature-divider{background:#38383a}ninja-keys{--ninja-modal-background: #1c1c1e;--ninja-text-color: #ffffff;--ninja-subtle-color: #2c2c2e;--ninja-separator-color: #38383a;--ninja-group-background: #2c2c2e;--ninja-group-text-color: #8e8e93;--ninja-item-hover-background: #0a2d4d;--ninja-item-hover-color: #ffffff;--ninja-item-icon-hover-color: #64b5f6;--ninja-item-subtitle-hover-color: #b0b0b5;--ninja-item-kbd-hover-color: #ffffff;--ninja-item-kbd-hover-background: #38383a;--ninja-input-background: #1c1c1e;--ninja-input-border: 1px solid #38383a;--ninja-item-kbd-background: #2c2c2e;--ninja-item-kbd-border: 1px solid #38383a;--ninja-backdrop-color: rgba(0, 0, 0, .7);--ninja-placeholder-color: #8e8e93;--ninja-item-icon-color: #8e8e93;--ninja-item-subtitle-color: #8e8e93;--ninja-item-kbd-color: #8e8e93;--ninja-scrollbar-thumb: #636366;--ninja-scrollbar-thumb-hover: #48484a}}
