:root{--primary-color: #0066cc;--secondary-color: #6c757d;--success-color: #28a745;--error-color: #dc3545;--warning-color: #ffc107;--background-color: #f5f5f5;--card-background: #ffffff;--border-color: #dee2e6;--text-color: #212529;--text-muted: #6c757d}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background-color);color:var(--text-color)}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background-color:var(--card-background);border-bottom:2px solid var(--border-color);padding:1.5rem 2rem}.app-header h1{font-size:1.75rem;margin-bottom:1rem;color:var(--primary-color)}.tab-nav{display:flex;gap:.5rem}.tab-button{padding:.5rem 1.5rem;border:none;background-color:transparent;color:var(--text-muted);cursor:pointer;font-size:1rem;border-bottom:3px solid transparent;transition:all .2s}.tab-button:hover{color:var(--primary-color)}.tab-button.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.app-main{flex:1;padding:2rem;max-width:1400px;width:100%;margin:0 auto}.scraper-view{display:grid;grid-template-columns:1fr 1fr;gap:2rem}.left-panel,.right-panel{display:flex;flex-direction:column;gap:2rem}.config-view,.import-view{max-width:1000px;margin:0 auto}.entity-selector,.scrape-controls,.scrape-history,.url-discovery,.config-settings{background-color:var(--card-background);border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a}h2{font-size:1.5rem;margin-bottom:1rem;color:var(--text-color)}h3{font-size:1.25rem;margin-bottom:.75rem;color:var(--text-color)}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-color)}.form-group select,.form-group input[type=number]{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem}.form-group select:disabled,.form-group input:disabled{background-color:#e9ecef;cursor:not-allowed}.checkbox-group{display:flex;flex-direction:column;gap:.75rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.button-group{display:flex;gap:1rem;margin-top:1rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background-color:#0052a3}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover:not(:disabled){background-color:#5a6268}.btn-small{padding:.5rem 1rem;font-size:.875rem}.entity-info{margin-top:1rem;padding:1rem;background-color:var(--background-color);border-radius:4px}.url-display a{color:var(--primary-color);text-decoration:none;word-break:break-all}.url-display a:hover{text-decoration:underline}.no-url-message,.no-data-message{padding:1rem;background-color:var(--background-color);border-radius:4px;color:var(--text-muted);text-align:center}.warning-message{padding:1rem;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;margin-bottom:1rem}.error-message{padding:1rem;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin-bottom:1rem}.success-message{padding:1rem;background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724;margin-top:1rem}.loading{padding:1rem;text-align:center;color:var(--text-muted)}.job-confirmation{margin-top:1rem;padding:1rem;background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px}.job-ids{margin-top:.5rem}.job-ids div{margin-bottom:.5rem;font-family:monospace}.history-table-container{overflow-x:auto}.history-table{width:100%;border-collapse:collapse;margin-top:1rem}.history-table th,.history-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color)}.history-table th{background-color:var(--background-color);font-weight:600}.format-badges{display:flex;gap:.5rem;flex-wrap:wrap}.format-badge{padding:.25rem .5rem;background-color:var(--primary-color);color:#fff;border-radius:4px;font-size:.75rem}.status-badge{padding:.25rem .75rem;border-radius:4px;font-size:.875rem;font-weight:500}.status-badge.success{background-color:#d4edda;color:#155724}.status-badge.failed{background-color:#f8d7da;color:#721c24}.candidates-list{margin-top:1.5rem}.candidates-info{color:var(--text-muted);margin-bottom:1rem}.candidates-container{display:flex;flex-direction:column;gap:1rem}.candidate-card{padding:1rem;border:1px solid var(--border-color);border-radius:4px;background-color:var(--background-color)}.candidate-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.candidate-header h4{margin:0;font-size:1.1rem}.relevance-score{padding:.25rem .5rem;background-color:var(--primary-color);color:#fff;border-radius:4px;font-size:.875rem}.candidate-url{margin-bottom:.5rem}.candidate-url a{color:var(--primary-color);text-decoration:none;word-break:break-all;font-size:.875rem}.candidate-description{color:var(--text-muted);margin-bottom:1rem;font-size:.875rem}.config-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border-color)}.config-section:last-of-type{border-bottom:none}.field-description{display:block;margin-top:.25rem;font-size:.875rem;color:var(--text-muted)}.discovery-info{padding:1rem;background-color:var(--background-color);border-radius:4px;margin-bottom:1rem}.app-footer{background-color:var(--card-background);border-top:1px solid var(--border-color);padding:1rem 2rem;text-align:center;color:var(--text-muted)}.url-import-form,.duplicate-detection-results,.entity-review-form,.import-confirmation,.operator-selector{background-color:var(--card-background);border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.import-info{padding:1rem;background-color:var(--background-color);border-radius:4px;margin-bottom:1.5rem}.import-info p{margin:0;color:var(--text-muted)}.form-group input[type=text],.form-group input[type=date],.form-group input[type=number],.form-group textarea{width:100%;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem}.form-group textarea{min-height:100px;resize:vertical;font-family:inherit}.input-error{border-color:var(--error-color)!important}.field-error{display:block;margin-top:.25rem;font-size:.875rem;color:var(--error-color)}.radio-group{display:flex;flex-direction:column;gap:1rem}.radio-label{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border:2px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .2s}.radio-label:hover{border-color:var(--primary-color);background-color:var(--background-color)}.radio-label input[type=radio]{margin-top:.25rem;width:18px;height:18px;cursor:pointer}.radio-label input[type=radio]:checked+span{font-weight:600;color:var(--primary-color)}.radio-label>span:first-of-type{flex:1}.radio-description{display:block;font-size:.875rem;color:var(--text-muted);margin-top:.25rem}.normalized-url-display{margin-top:1.5rem;padding:1rem;background-color:var(--background-color);border-radius:4px}.normalized-url-display h3{font-size:1rem;margin-bottom:.5rem}.url-note{margin-top:.5rem;font-size:.875rem;color:var(--text-muted)}.duplicates-list{margin-top:1.5rem}.duplicate-card{padding:1rem;border:2px solid var(--border-color);border-radius:4px;background-color:var(--background-color);margin-bottom:1rem}.duplicate-card.recommended{border-color:var(--warning-color);background-color:#fff3cd}.duplicate-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.duplicate-header h4{margin:0;font-size:1.1rem;flex:1}.similarity-score{padding:.25rem .75rem;background-color:var(--primary-color);color:#fff;border-radius:4px;font-size:.875rem;font-weight:600;margin-left:1rem}.similarity-score.high{background-color:var(--error-color)}.similarity-score.medium{background-color:var(--warning-color);color:#856404}.duplicate-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin-bottom:.75rem;font-size:.875rem}.duplicate-detail{display:flex;flex-direction:column}.duplicate-detail-label{font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;margin-bottom:.25rem}.duplicate-actions{display:flex;gap:.5rem;margin-top:.75rem}.btn-success{background-color:var(--success-color);color:#fff}.btn-success:hover:not(:disabled){background-color:#218838}.btn-warning{background-color:var(--warning-color);color:#856404}.btn-warning:hover:not(:disabled){background-color:#e0a800}.form-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border-color)}.form-section:last-of-type{border-bottom:none}.form-section h3{margin-bottom:1rem;color:var(--primary-color)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.slug-preview{padding:1rem;background-color:var(--background-color);border-radius:4px;margin-top:1rem}.slug-preview h4{font-size:.875rem;margin-bottom:.5rem;color:var(--text-muted);text-transform:uppercase}.slug-preview-value{font-family:monospace;font-size:1rem;color:var(--primary-color);font-weight:600}.unmatched-items{margin-top:1.5rem;padding:1rem;background-color:#fff3cd;border:1px solid var(--warning-color);border-radius:4px}.unmatched-items h4{margin-bottom:.75rem;color:#856404}.unmatched-list{list-style:none;padding:0;margin:0}.unmatched-list li{padding:.5rem;background-color:#fff;border-radius:4px;margin-bottom:.5rem;font-family:monospace}.entity-link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background-color:var(--primary-color);color:#fff;text-decoration:none;border-radius:4px;font-weight:600;transition:all .2s}.entity-link:hover{background-color:#0052a3}.import-another{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.action-section{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border-color)}.action-section h3{margin-bottom:1rem}.duplicate-recommendation{margin-top:.75rem;padding:.5rem;background-color:#fff;border-radius:4px;font-size:.875rem}.required{color:var(--error-color);font-weight:700}.field-note{padding:.5rem;border-radius:4px;font-size:.875rem}.entity-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.entity-detail{display:flex;flex-direction:column;gap:.25rem}.entity-detail-label{font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase}.entity-actions{margin-top:1.5rem;display:flex;justify-content:center}.unmatched-section{margin-top:1rem}.unmatched-section h5{font-size:.875rem;margin-bottom:.5rem;color:#856404}.import-workflow{max-width:1000px;margin:0 auto}.workflow-progress{display:flex;justify-content:space-between;margin-bottom:2rem;padding:1.5rem;background-color:var(--card-background);border-radius:8px;box-shadow:0 2px 4px #0000001a}.progress-step{flex:1;text-align:center;padding:.75rem 1rem;border-radius:4px;font-weight:600;color:var(--text-muted);background-color:var(--background-color);position:relative}.progress-step:not(:last-child):after{content:"→";position:absolute;right:-1rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:1.5rem}.progress-step.active{background-color:var(--primary-color);color:#fff}.progress-step.completed{background-color:var(--success-color);color:#fff}.processing-status{padding:1rem;background-color:var(--background-color);border-radius:4px;text-align:center}.processing-status .loading{margin-top:.5rem}.existing-url-warning{margin-bottom:1.5rem}.existing-url-warning h3{margin-bottom:.75rem;color:#856404}.existing-entity-info{background-color:#fff;padding:1rem;border-radius:4px;margin:1rem 0}.info-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.info-row:last-child{border-bottom:none}.info-label{font-weight:600;color:var(--text-muted)}.info-value{color:var(--text-color)}.url-link{color:var(--primary-color);text-decoration:none;word-break:break-all}.url-link:hover{text-decoration:underline}.existing-entity-actions{display:flex;gap:.75rem;margin:1rem 0}.info-note{margin-top:1rem;font-size:.875rem;color:#856404}.extraction-failure-options{margin-top:1.5rem;padding:1.5rem;background-color:var(--background-color);border-radius:4px}.extraction-failure-options h3{margin-bottom:1rem;color:var(--text-color)}.validation-errors-summary{margin-bottom:1.5rem}.validation-errors-summary ul{margin-top:.75rem;margin-left:1.5rem;list-style:disc}.validation-errors-summary li{margin-bottom:.5rem}.job-queue{background-color:var(--card-background);border-radius:8px;padding:1rem;box-shadow:0 2px 4px #0000001a;margin-top:1.5rem}.job-queue-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.job-queue-header h3{margin:0;font-size:1rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.badge{display:inline-block;padding:.2rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600}.badge.active{background-color:var(--primary-color);color:#fff}.badge.completed{background-color:var(--success-color);color:#fff}.badge.failed{background-color:var(--error-color);color:#fff}.job-queue-list{display:flex;flex-direction:column;gap:.75rem}.job-item{padding:.75rem;border:1px solid var(--border-color);border-radius:6px;background-color:var(--background-color)}.job-item.job-queued{border-left:3px solid #6c757d}.job-item.job-processing{border-left:3px solid var(--primary-color);background-color:#e8f4fc}.job-item.job-completed{border-left:3px solid var(--success-color)}.job-item.job-failed{border-left:3px solid var(--error-color);background-color:#fff0f0}.job-item-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.job-status-icon{font-size:1rem}.job-entity-name{font-weight:600;color:var(--text-color)}.job-entity-type{color:var(--text-muted);font-size:.875rem}.job-type-badge{margin-left:auto;padding:.15rem .5rem;background-color:var(--border-color);border-radius:4px;font-size:.75rem;color:var(--text-muted)}.job-progress{margin-top:.5rem}.progress-bar{width:100%;height:8px;background-color:var(--border-color);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background-color:var(--primary-color);border-radius:4px;transition:width .3s ease}.job-item.job-completed .progress-fill{background-color:var(--success-color)}.progress-text{display:block;margin-top:.25rem;font-size:.75rem;color:var(--text-muted)}.job-completed-info,.job-failed-info{margin-top:.5rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.completed-time{font-size:.75rem;color:var(--success-color)}.error-message{font-size:.75rem;color:var(--error-color);flex:1}.job-actions{display:flex;gap:.25rem}.job-meta{margin-top:.5rem;display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted)}.job-queue-footer{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-color);text-align:center}.polling-indicator{font-size:.75rem;color:var(--text-muted)}.polling-indicator:before{content:"●";color:var(--success-color);margin-right:.25rem;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.btn-small{padding:.25rem .5rem;font-size:.75rem}.btn-outline{background-color:transparent;border:1px solid var(--primary-color);color:var(--primary-color)}.btn-outline:hover:not(:disabled){background-color:var(--primary-color);color:#fff}.btn-text{background-color:transparent;border:none;color:var(--text-muted);padding:.25rem .5rem}.btn-text:hover:not(:disabled){color:var(--text-color);background-color:var(--background-color)}.loading-inline{font-size:.75rem;color:var(--text-muted);margin-left:.5rem}.scrape-hint{margin-top:.75rem;font-size:.75rem;color:var(--text-muted);text-align:center}@media (max-width: 1024px){.scraper-view,.form-row,.duplicate-details{grid-template-columns:1fr}}
