.loading-container{position:fixed;top:0;left:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.8);z-index:1000}.loading-spinner{width:80px;height:80px;border:8px solid #f3f3f3;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}:root{--primary-color:#3472fe;--text-color:#333;--border-color:#e0e0e0;--bg-color:#f5f7fa;--error-color:#ff4d4f;--success-color:#52c41a;--warning-color:#faad14;--gray-color:#8c8c8c;--light-gray:#f0f0f0}*{margin:0;padding:0;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Microsoft YaHei,sans-serif}body{background-color:var(--bg-color);color:var(--text-color)}.container{width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100vh;overflow:hidden}.header{background-color:#fff;border-bottom:1px solid var(--border-color);padding:0 24px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;height:64px;-ms-flex-negative:0;flex-shrink:0}.header,.logo{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.logo{font-size:20px;font-weight:700;color:var(--primary-color);gap:12px}.logo-icon{width:32px;height:32px}.report-btn{background-color:var(--primary-color);color:#fff;border:none;padding:10px 90px;border-radius:6px;cursor:pointer;font-weight:500;-webkit-transition:opacity .3s;transition:opacity .3s}.report-btn:disabled{background-color:var(--gray-color);cursor:not-allowed;opacity:.5}.ignore-all-btn{background-color:var(--gray-color);color:#fff;border:none;padding:8px;border-radius:6px;cursor:pointer;font-weight:500;-webkit-transition:opacity .3s;transition:opacity .3s;width:100%}.report-btn:not(:disabled):hover{opacity:.9}.main-area{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.canvas-panel,.left-panel,.right-panel{width:40%;min-width:550px;height:90%;background-color:#fff;border:1px solid var(--border-color);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-negative:0;flex-shrink:0}.canvas-panel,.center-panel,.left-panel,.right-panel{-webkit-box-orient:vertical;-webkit-box-direction:normal;overflow:hidden}.center-panel{-webkit-box-flex:1;-ms-flex:1;flex:1;display:none;-ms-flex-direction:column;flex-direction:column}.panel-header{padding:4px 20px;border-bottom:1px solid var(--border-color);font-weight:600;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-weight:700;font-style:normal;font-size:16px;color:#00f;background-color:#f2f2f2}.panel-content{height:90%;padding:10px}.upload-area{border:2px dashed var(--border-color);border-radius:8px;padding:20px;text-align:center;cursor:pointer;-webkit-transition:all .3s;transition:all .3s;height:100%;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;position:relative;z-index:999}.upload-area:hover{border-color:var(--primary-color);background-color:rgba(52,114,254,.05)}.upload-icon{font-size:48px;color:var(--gray-color)}.upload-text{color:var(--gray-color);margin-bottom:8px}.upload-formats{font-size:12px;color:#999}.file-list{margin-top:20px}.file-item{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:8px 16px;background-color:var(--light-gray)}.file-info,.file-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.file-info{gap:12px}.file-type-icon{width:24px;height:24px;background-color:var(--primary-color);color:#fff;border-radius:4px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:12px}.delete-btn{color:var(--error-color);background:none;border:none;cursor:pointer;font-size:20px}.tree-list{margin-top:20px}.tree-item{margin-bottom:4px}.tree-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px;background-color:var(--light-gray);border-radius:4px;cursor:pointer;border-bottom:1px solid var(--border-color)}.tree-toggle{margin-right:8px;width:20px;text-align:center}.tree-content{margin-left:20px;margin-top:8px}.check-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:8px 12px;border-radius:4px;margin-bottom:4px}.check-item:hover{background-color:var(--light-gray)}.check-item input[type=checkbox]{margin-right:8px}.check-all{margin-top:20px;display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px}.preview-area{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;height:300px;margin-bottom:20px;position:relative}.preview-img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;background-color:var(--light-gray)}.preview-controls{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px;margin-bottom:20px}.control-btn{padding:8px 16px;background-color:#fff;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;-webkit-box-flex:1;-ms-flex:1;flex:1}.control-btn:hover{background-color:var(--light-gray)}.ocr-box{position:absolute;border:2px solid var(--primary-color);background-color:rgba(52,114,254,.2)}.center-header{padding:16px 20px;border-bottom:1px solid var(--border-color);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.compare-btn{background-color:var(--primary-color);color:#fff;border:none;padding:10px 90px;border-radius:6px;cursor:pointer;font-weight:500;font-size:16px}.compare-btn:disabled{background-color:var(--gray-color);cursor:not-allowed}.view-switch{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px}.view-btn{padding:8px 16px;background-color:#fff;border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.view-btn.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color)}.center-content{overflow:hidden}.center-content,.compare-view{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex}.compare-view{padding:20px;gap:20px}.compare-side{-webkit-box-flex:1;-ms-flex:1;flex:1;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.compare-title{padding:12px 20px;border-bottom:1px solid var(--border-color);background-color:var(--light-gray);font-weight:500}.compare-content{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:20px;overflow-y:auto;position:relative}.doc-content{line-height:1.6}.doc-item{margin-bottom:12px;padding:8px;border-radius:4px}.doc-item.highlight{background-color:rgba(255,77,79,.1);border-left:3px solid var(--error-color)}.marker{position:absolute;width:24px;height:24px;background-color:var(--error-color);color:#fff;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:12px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);cursor:pointer}.marker.active{background-color:var(--primary-color);-webkit-transform:translate(-50%,-50%) scale(1.2);transform:translate(-50%,-50%) scale(1.2)}.differences-panel{width:20%;min-width:300px;height:90%;border:1px solid var(--border-color);background-color:#fff;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.differences-header,.differences-panel{display:-webkit-box;display:-ms-flexbox;display:flex}.differences-header{padding:6px 20px;border-bottom:1px solid var(--border-color);background-color:#f2f2f2;font-weight:600;text-align:left;font-weight:700;font-style:normal;font-size:16px;color:#00f;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.differences-header-fix{position:sticky;top:0;background:#fff;z-index:1000}.differences-list{overflow-y:auto;text-align:center;padding-bottom:10px}.diff-item{padding:12px 16px;border-bottom:1px solid var(--border-color);cursor:pointer;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:12px}.diff-item:hover{background-color:var(--light-gray)}.diff-item.active{background-color:rgba(52,114,254,.1)}.diff-number{width:24px;height:24px;background-color:var(--gray-color);color:#fff;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:12px}.diff-item.error .diff-number{background-color:var(--error-color)}.diff-item.ignore .diff-number{background-color:var(--success-color)}.diff-info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin-bottom:10px;word-wrap:break-word;white-space:normal;text-align:left}.diff-type{font-size:12px;color:var(--gray-color)}.diff-status{font-size:12px;padding:2px 8px;border-radius:10px}.status-pending{background-color:var(--light-gray);color:var(--gray-color)}.status-error{background-color:rgba(255,77,79,.1);color:var(--error-color)}.status-ignore{background-color:rgba(82,196,26,.1);color:var(--success-color)}.annotation-panel{background-color:#fff;border-top:1px solid var(--border-color);padding:20px;display:none}.annotation-panel.show{display:block}.annotation-header{font-weight:600;margin-bottom:16px}.verdict-options{gap:20px;margin-bottom:10px;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.verdict-option,.verdict-options{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.verdict-option{gap:8px}.annotation-textarea{width:100%;height:120px;padding:12px;border:1px solid var(--border-color);border-radius:6px;resize:vertical;margin-bottom:10px}.annotation-actions{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.annotation-actions,.nav-buttons{display:-webkit-box;display:-ms-flexbox;display:flex;gap:12px}.nav-buttons{margin-bottom:20px}.nav-btn{padding:8px 16px;background-color:#fff;border:1px solid var(--border-color);border-radius:4px;cursor:pointer}.closeup-view{display:none;-webkit-box-flex:1;-ms-flex:1;flex:1;padding:20px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.closeup-content,.closeup-view.show{display:-webkit-box;display:-ms-flexbox;display:flex}.closeup-content{gap:20px}.closeup-content,.closeup-side{-webkit-box-flex:1;-ms-flex:1;flex:1}.closeup-side{border:1px solid var(--border-color);border-radius:8px;overflow:hidden;background-color:#fff}.closeup-title{padding:12px 20px;border-bottom:1px solid var(--border-color);background-color:var(--light-gray);font-weight:500}.closeup-body{padding:20px}.closeup-img{width:100%;max-height:300px;-o-object-fit:contain;object-fit:contain}@media (max-width:1200px){.differences-panel,.left-panel,.right-panel{width:280px}}.img-upload{width:26px;height:26px}.img-control{width:20px;height:20px}.img-control:hover{cursor:pointer}.img-icon{width:50px;height:50px}.loading-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100vh}.loading-spinner{width:40px;height:40px;border-radius:50%;border:4px solid #f3f3f3;border-top-color:#3498db;-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.loading-text{margin-top:10px;font-size:16px}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}