*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:#f0f2f5;color:#333}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{background-color:#1a1a2e;color:#fff;padding:.75rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.header-brand{display:flex;align-items:center;gap:.75rem}.header-logo{height:36px;width:auto;flex-shrink:0}.app-header h1{font-size:1.25rem;font-weight:600}.header-actions{display:flex;gap:.75rem}.btn-primary{padding:.625rem 1.25rem;border:none;background-color:#f36f27;color:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:#e05f1a}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:.625rem 1.25rem;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.btn-secondary:hover{background-color:#f3f4f6}.upload-btn{display:inline-flex;align-items:center;background-color:#4a4a6a;color:#fff;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.upload-btn:hover{background-color:#5a5a7a}.upload-btn input{display:none}.error-banner{background-color:#fee2e2;color:#dc2626;padding:.5rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.error-banner button{background:none;border:none;color:#dc2626;cursor:pointer;text-decoration:underline}.app-main{flex:1;display:flex;overflow:hidden;min-height:0}.sidebar{width:250px;background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;flex-shrink:0}.sidebar-right{width:320px;background:#fff;border-left:1px solid #e0e0e0;display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.pdf-list{flex:1;overflow-y:auto;padding:1rem}.pdf-list h3{font-size:.85rem;text-transform:uppercase;color:#666;margin-bottom:.75rem;letter-spacing:.5px}.pdf-list ul{list-style:none}.pdf-list-item{display:flex;align-items:center;justify-content:space-between;padding:.625rem .75rem;border-radius:6px;cursor:pointer;margin-bottom:.25rem;transition:background-color .15s}.pdf-list-item:hover{background-color:#f5f5f5}.pdf-list-item.selected{background-color:#fff3e0}.pdf-item-info{display:flex;align-items:center;gap:.5rem;min-width:0}.pdf-icon{font-size:1.25rem;flex-shrink:0}.pdf-details{display:flex;flex-direction:column;min-width:0}.pdf-name{font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-pages{font-size:.75rem;color:#888}.pdf-remove-btn{background:none;border:none;color:#999;font-size:1.25rem;cursor:pointer;padding:0 .25rem;line-height:1;opacity:0;transition:opacity .15s,color .15s}.pdf-list-item:hover .pdf-remove-btn{opacity:1}.pdf-remove-btn:hover{color:#dc2626}.viewer-panel{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#e8e8e8;min-height:0}.toolbar-group{display:flex;align-items:center;gap:.5rem}.toolbar-separator{width:1px;height:24px;background-color:#d1d5db;margin:0 .5rem}.toolbar-group button{width:32px;height:32px;border:1px solid #d1d5db;border-radius:4px;background:#fff;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center}.toolbar-group button:hover:not(:disabled){background-color:#f3f4f6}.toolbar-group button:disabled{opacity:.4;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.modal-header h2{font-size:1.25rem;font-weight:600}.modal-close-btn{background:none;border:none;font-size:1.5rem;color:#666;cursor:pointer;padding:0;line-height:1}.modal-close-btn:hover{color:#333}.modal-body{flex:1;overflow-y:auto;padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;flex-direction:column;gap:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem}.replacement-table{width:100%;border-collapse:collapse}.replacement-table th{text-align:left;padding:.5rem;font-size:.85rem;color:#6b7280;font-weight:500}.replacement-table td{padding:.375rem}.replacement-table input{width:100%;padding:.625rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem}.replacement-table input:focus{outline:none;border-color:#f36f27;box-shadow:0 0 0 2px #f36f2733}.replacement-table input:disabled{background-color:#f3f4f6;cursor:not-allowed}.match-count{font-size:.85rem;color:#059669;background-color:#d1fae5;padding:.25rem .75rem;border-radius:9999px}.results-count{font-size:.75rem;color:#0891b2;background-color:#cffafe;padding:.125rem .5rem;border-radius:9999px}.drop-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#f36f27e6;display:flex;align-items:center;justify-content:center;z-index:2000}.drop-overlay-content{text-align:center;color:#fff}.drop-icon{font-size:5rem;margin-bottom:1rem}.drop-overlay-content p{font-size:1.5rem;font-weight:500}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fffc;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1500}.loading-spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:#f36f27;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay p{margin-top:1rem;color:#374151;font-size:1rem}.pattern-input{flex:1;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.85rem}.pattern-input:focus{outline:none;border-color:#f36f27;box-shadow:0 0 0 2px #f36f2733}.pattern-input:disabled{background-color:#f3f4f6;cursor:not-allowed}.extract-btn{padding:.625rem 1.25rem;border:none;background-color:#059669;color:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500}.extract-btn:hover:not(:disabled){background-color:#047857}.extract-btn:disabled{opacity:.5;cursor:not-allowed}.highlight-toggle{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.85rem;color:#374151}.highlight-toggle input{width:16px;height:16px;cursor:pointer}.tag-table{width:100%;border-collapse:collapse;font-size:.85rem}.tag-table th{text-align:left;padding:.5rem .75rem;font-size:.75rem;color:#6b7280;font-weight:500;background:#f9fafb;border-bottom:1px solid #e5e7eb;position:sticky;top:0}.tag-table td{padding:.5rem .75rem;border-bottom:1px solid #f3f4f6}.tag-table tr:last-child td{border-bottom:none}.tag-row{cursor:pointer;transition:background-color .15s ease}.tag-row:hover{background-color:#fff7ed}.tag-row.selected{background-color:#fed7aa}.tag-row.selected:hover{background-color:#fdba74}.remove-row-btn{width:32px;height:32px;border:none;background-color:#fee2e2;color:#dc2626;border-radius:6px;cursor:pointer;font-size:1.1rem;font-weight:700}.remove-row-btn:hover:not(:disabled){background-color:#fecaca}.remove-row-btn:disabled{opacity:.4;cursor:not-allowed}.add-row-btn{margin-top:.75rem;padding:.625rem 1rem;border:1px dashed #d1d5db;background:#fff;color:#6b7280;border-radius:6px;cursor:pointer;width:100%;font-size:.9rem}.add-row-btn:hover:not(:disabled){border-color:#f36f27;color:#f36f27}.add-row-btn:disabled{opacity:.4;cursor:not-allowed}.export-btn{padding:.25rem .625rem;border:1px solid #F36F27;background:#fff;color:#f36f27;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .15s ease}.export-btn:hover:not(:disabled){background:#f36f27;color:#fff}.export-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 1024px){.sidebar-right{width:280px}}@media (max-width: 768px){.sidebar{width:200px}.sidebar-right{width:250px}.modal-content{width:95%;max-height:90vh}}.MuiDataGrid-root{border:none!important;background:#fff}.MuiDataGrid-cell:focus,.MuiDataGrid-cell:focus-within{outline:none!important}.MuiDataGrid-columnHeader:focus,.MuiDataGrid-columnHeader:focus-within{outline:none!important}.MuiDataGrid-row:hover{background-color:#fff7ed!important}.MuiDataGrid-row.Mui-selected{background-color:#fed7aa!important}.MuiDataGrid-row.Mui-selected:hover{background-color:#fdba74!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a1a1a1}
