*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}.sidebar-container{position:relative;height:100%}.sidebar-wrapper{position:relative;height:100%;flex-shrink:0}.sidebar{height:100%;flex:0 0 300px;background-color:#f5f5f5;overflow-y:auto;position:relative;z-index:100;display:flex;flex-direction:column}.sidebar-header{padding:100px 12px 12px 20px;gap:10px;display:flex;justify-content:space-between;align-items:center}.sidebar-header h2{margin:0;font-size:20px;color:#333}.sidebar-content{flex:1;overflow-y:auto}.collapse-button{position:absolute;top:10px;right:10px;width:24px;height:24px;background:#fff;border:1px solid #e0e0e0;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px}.open-sidebar-button{position:fixed;top:10px;left:10px;width:24px;height:24px;z-index:1000;display:flex;align-items:center;justify-content:center;border:1px solid #e0e0e0;border-radius:4px;background:#fff;cursor:pointer}.file-select-group{padding:15px 20px;margin-bottom:10px}.file-select-group select{width:100%;padding:12px;border:1px solid #e0e0e0;border-radius:4px;background-color:#fff;font-size:14px;outline:none}.file-select-group select:focus{border-color:#06c}.file-select-group select:hover{border-color:#999}.download-button{width:calc(100% - 40px);margin:0 20px;padding:10px;background-color:#06c;color:#fff;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:background-color .2s ease}.download-button:hover{background-color:#0052a3}.download-button:active{background-color:#004080}.download-button:disabled{background-color:#ccc;cursor:not-allowed}.file-preview{margin-top:20px;padding:10px;width:100%;background-color:transparent;display:flex;flex-direction:column;align-items:center}.file-preview img{width:100%;height:auto;object-fit:contain;display:block;margin:0 auto}.file-preview .file-name{margin-top:8px;text-align:center;word-break:break-all;font-size:13px;color:#666;width:100%}.resize-handle{position:absolute;top:0;right:0;width:5px;height:100%;cursor:col-resize;background-color:transparent;z-index:101}.resize-handle:hover{background-color:#0000001a}.image-container{width:100%;position:relative;overflow:hidden}.upload-container{display:flex;flex-direction:column;gap:4px;width:100%;margin:14px 0 0}.upload-box{border:1px solid #e0e0e0;border-radius:4px;margin-top:4px;padding-top:16px;padding-left:16px;background-color:#f8f9fa;cursor:pointer;width:100%;height:77px;transition:all .3s ease}.upload-box.dragging{border-color:#2196f3;background-color:#2196f30d}.upload-box.dragging .upload-content{opacity:.5}.upload-label{display:flex;align-items:center;width:100%}.upload-content{display:flex;align-items:center;width:100%;gap:15px}.upload-icon{width:40px;height:40px;order:-1}.text-container{display:flex;flex-direction:column;gap:2px}.upload-hint{font-size:12px;color:#999}.file-info{margin-top:10px;display:flex;align-items:center;padding:16px;border:1px solid #e0e0e0;border-radius:4px;background-color:#fff}.loading-bar{flex:1;height:4px;background-color:#e0e0e0;margin:0 10px;border-radius:2px;overflow:hidden}.loading-progress{height:100%;background-color:#06f;border-radius:2px;transition:width .3s ease-in-out}.file-icon{width:40px;height:40px;margin-right:8px}.remove-button{margin-left:auto;border:none;background:none;color:#999;cursor:pointer;padding:0 8px}.upload-details{margin-top:16px;padding:16px;border:1px solid #e0e0e0;border-radius:4px;background-color:#fff}.details-row{display:flex;align-items:center;margin-bottom:12px}.detail-label{min-width:120px;font-size:14px;color:#333}.detail-select{flex:1;padding:8px;border:1px solid #e0e0e0;border-radius:4px;font-size:14px;color:#333}.progress-bar{height:2px;background-color:#e0e0e0;margin-top:16px;position:relative;overflow:hidden}.processing-container{display:flex;flex-direction:column;width:100%;gap:20px;align-items:flex-start}.engine-selection{display:flex;gap:30px}.engine-group{flex:1}.engine-group label{display:block;margin-bottom:8px;color:#666;font-size:14px}.engine-group select{width:300px;padding:10px;gap:20px;border:1px solid #e0e0e0;border-radius:4px;background-color:#fff}.extract-button{width:100%;padding:12px;background-color:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:16px}.extract-button:disabled{background-color:#ccc;cursor:not-allowed}.result-container{margin-top:20px}.result-card{margin-bottom:30px}.result-card h2{font-size:18px;font-weight:600;margin-bottom:16px;color:#333}.extracted-text{line-height:1.6;color:#333;white-space:normal}.data-table{width:100%;border-collapse:collapse;border:1px solid #e0e0e0}.data-table tr{border-bottom:1px solid #e0e0e0}.data-table .key-cell{padding:12px 16px;background-color:#f8f9fa;border-right:1px solid #e0e0e0;width:30%;font-weight:500;color:#333}.data-table .value-cell{padding:12px 16px;color:#333}.loading-spinner{display:flex;justify-content:center;align-items:center;padding:20px}.spinner{width:30px;height:30px;border:3px solid #f3f3f3;border-top:3px solid #007bff;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.engine-selection{flex-direction:column}.data-table .key-cell{width:40%}}.main-container{max-width:1200px;margin:44px auto 0;padding:20px}.main-container h1{font-size:24px;color:#333;margin-bottom:20px;text-align:left}.content-wrapper{display:flex;flex-direction:column;gap:20px}.upload-section,.processing-section{width:100%}@media (max-width: 768px){.content-wrapper{gap:16px}.upload-section,.processing-section{padding:16px}}.footer-container{height:40px;background-color:#f5f5f5;border-top:1px solid #f5f5f5;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#666;font-size:14px}.footer-links{margin-bottom:8px}.footer-links span{margin:0 15px;cursor:pointer}.footer-links span:hover{color:#333}.footer-copyright{font-size:12px;color:#999}.app-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.content-container{display:flex;flex:1;overflow:hidden}.main-section{flex:1;overflow-y:auto;padding:20px;margin-left:0;transition:margin-left .3s ease}
