*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:#222;background:#e9e9ec;font-family:system-ui,-apple-system,Segoe UI,Microsoft YaHei,sans-serif;font-size:13px}.app{flex-direction:column;height:100%;display:flex}.toolbar{background:#fafafa;border-bottom:1px solid #d6d6d6;align-items:center;gap:6px;padding:8px 12px;display:flex}.toolbar button{cursor:pointer;font:inherit;background:#fff;border:1px solid #c8c8c8;border-radius:4px;padding:5px 12px}.toolbar button:hover:not(:disabled){background:#f0f0f0}.toolbar button:disabled{opacity:.45;cursor:default}.toolbar button.active,.toolbar button.primary{color:#fff;background:#1a73e8;border-color:#1a73e8}.toolbar button.primary:hover:not(:disabled){background:#1765cc}.toolbar .divider{background:#d6d6d6;width:1px;height:20px;margin:0 4px}.toolbar .spacer{flex:1}.toolbar .zoom-label{text-align:center;color:#555;min-width:44px}.body{flex:1;min-height:0;display:flex}.page-list{flex-direction:column;flex:1;align-items:center;gap:24px;padding:24px;display:flex;overflow:auto}.page-list.cut-mode .page{cursor:crosshair}.page-list.cut-mode .page:hover{outline:2px solid #e53935}.page-wrapper{scroll-margin-top:24px}.page{background:#fff;display:block;box-shadow:0 2px 10px #0000002e}.empty{color:#666;background:#f5f5f7;border:2px dashed #bbb;border-radius:10px;margin:auto;padding:40px 60px;font-size:15px}.thumbs{background:#f3f3f5;border-left:1px solid #d6d6d6;flex-direction:column;gap:12px;width:180px;padding:12px;display:flex;overflow:auto}.thumb{cursor:pointer;position:relative}.thumb canvas{background:#fff;display:block;box-shadow:0 1px 4px #0003}.thumb:hover canvas{outline:2px solid #1a73e8}.thumb-index{color:#fff;background:#0000008c;border-radius:3px;padding:1px 6px;font-size:11px;position:absolute;bottom:4px;right:4px}.ocr-panel{background:#f7f7f9;border-left:1px solid #d6d6d6;flex-direction:column;width:340px;min-height:0;display:flex}.ocr-header{border-bottom:1px solid #e2e2e2;align-items:center;gap:6px;padding:8px 10px;display:flex}.ocr-header .spacer{flex:1}.ocr-panel button{cursor:pointer;font:inherit;background:#fff;border:1px solid #c8c8c8;border-radius:4px;padding:4px 10px}.ocr-panel button:hover:not(:disabled){background:#f0f0f0}.ocr-panel button:disabled{opacity:.45;cursor:default}.ocr-panel button.active{color:#fff;background:#1a73e8;border-color:#1a73e8}.ocr-panel button.link{color:#1a73e8;background:0 0;border:none;padding:0 4px}.ocr-status{color:#666;border-bottom:1px solid #e2e2e2;padding:6px 10px;font-size:12px;line-height:1.5}.ocr-filters{border-bottom:1px solid #e2e2e2;gap:4px;padding:6px 10px;display:flex}.ocr-filters button{padding:2px 8px;font-size:12px}.ocr-search{min-width:0;font:inherit;border:1px solid #c8c8c8;border-radius:4px;flex:1;padding:3px 6px;font-size:12px}.ocr-list{flex:1;padding:6px;overflow:auto}.ocr-line{cursor:pointer;background:#fff;border:1px solid #e0e0e0;border-left-width:4px;border-radius:4px;margin-bottom:6px;padding:6px 8px}.ocr-line.low{background:#fffbea;border-left-color:#f59e0b}.ocr-line.edited{border-left-color:#16a34a}.ocr-line.selected{outline:2px solid #1a73e8}.ocr-line-meta{color:#888;align-items:center;gap:6px;margin-bottom:4px;font-size:11px;display:flex}.ocr-line-meta .spacer{flex:1}.ocr-tag{color:#166534;background:#dcfce7;border-radius:3px;padding:0 5px}.ocr-line textarea{resize:vertical;width:100%;font:inherit;field-sizing:content;background:0 0;border:1px solid #0000;border-radius:3px;padding:4px 6px;line-height:1.4}.ocr-line textarea:hover{border-color:#ddd}.ocr-line textarea:focus{background:#fff;border-color:#1a73e8;outline:none}.ocr-empty{text-align:center;color:#888;padding:20px}.pdf-page-view{background:#fff;position:relative;box-shadow:0 2px 10px #0000002e}.pdf-page-view canvas{display:block}.pdf-highlight{pointer-events:none;background:#ffc10747;border:1.5px solid #f59e0b;border-radius:2px;position:absolute}.pdf-thumbs .thumb.active canvas{outline:2px solid #1a73e8}.nav-link{color:#222;background:#fff;border:1px solid #c8c8c8;border-radius:4px;padding:5px 12px;text-decoration:none}.nav-link:hover{background:#f0f0f0}.status{color:#555;background:#fafafa;border-top:1px solid #d6d6d6;justify-content:space-between;padding:5px 12px;display:flex}.status-busy{color:#1a73e8}.status-error{color:#c62828}
