body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.event-form{background:#fff;border-radius:12px;margin:2rem auto;max-width:600px;padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{color:#333;display:block;font-weight:500;margin-bottom:.5rem}.form-group input[type=date],.form-group input[type=datetime-local],.form-group input[type=text],.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:6px;font-size:1rem;padding:.75rem;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e21a;outline:none}.form-group textarea{min-height:100px;resize:vertical}.checkbox-group{align-items:center;display:flex;gap:.5rem}.checkbox-group input[type=checkbox]{height:18px;width:18px}button[type=submit]{background:#4a90e2;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem;transition:background-color .2s;width:100%}button[type=submit]:hover{background:#357abd}.file-input-group{border:2px dashed #ddd;border-radius:6px;cursor:pointer;padding:1.5rem;text-align:center}.file-input-group:hover{border-color:#4a90e2}.form-header{margin-bottom:2rem;text-align:center}.form-header h2{color:#333;font-size:1.75rem;margin-bottom:.5rem}.form-header p{color:#666}.button-group{display:flex;gap:1rem;margin-top:2rem}.button-primary,.button-secondary{border:none;border-radius:6px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:1rem;transition:all .2s}.button-primary{background:#4a90e2;color:#fff}.button-primary:hover{background:#357abd}.button-secondary{background:#f5f5f5;border:1px solid #ddd;color:#333}.button-secondary:hover{background:#e5e5e5}.form-row .form-group{flex:1 1}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.location-search-group{display:flex;gap:.5rem}.location-search-group input{flex:1 1}.map-button{background:#4a90e2;border:none;border-radius:6px;color:#fff;cursor:pointer;padding:.75rem 1rem;transition:background-color .2s;white-space:nowrap}.map-button:hover{background:#357abd}.dashboard-container{max-width:1200px;padding:2rem}.dashboard-header{margin-bottom:2rem}.dashboard-header h1{color:#333;font-size:2.2rem;margin-bottom:1.5rem}.action-buttons{display:flex;gap:1rem;margin-bottom:2rem}.search-filters{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem}.search-input{padding:.5rem;width:300px}.select-filter{min-width:150px;padding:.5rem}.events-list{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.event-card{border:1px solid #eee;border-radius:6px;margin-bottom:1rem;padding:1rem;transition:transform .2s}.event-card:hover{box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.modern-button{background-color:#4285f4;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-block;font-size:16px;padding:12px 24px;transition:background-color .2s}.modern-button:hover{background-color:#3367d6}.existing-images{margin-bottom:16px}.image-preview-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));margin:10px 0}.image-preview-item{height:100px;overflow:hidden;position:relative;width:100px}.image-preview-item img{cursor:pointer;height:100%;object-fit:cover;width:100%}.delete-image-btn{align-items:center;background:#00000080;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:16px;justify-content:center;padding:0;position:absolute;right:2px;top:2px;width:16px}.delete-image-btn:hover{background:#000000b3}.image-modal{z-index:1100}.modal-image{max-height:90vh;max-width:90vw;object-fit:contain}.event-form{background-color:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin:0 auto;max-width:800px;padding:20px}.form-group{margin-bottom:15px;width:100%}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:4px;box-sizing:border-box;margin-top:5px;padding:8px;width:100%}@media screen and (max-width:768px){.event-form{max-width:90%;padding:15px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{font-size:16px;padding:8px;width:100%}.image-preview-grid{gap:5px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.image-preview-item{height:80px;width:80px}.button-group{display:flex;flex-direction:column;gap:10px}.button-group button{margin:0;width:100%}table{display:block;overflow-x:auto;white-space:nowrap}input[type=datetime-local]{min-width:auto}}@media (max-width:600px){.event-form{font-size:14px;max-width:95%;padding:10px}.event-form button,.event-form input{width:100%}}@media (min-width:1200px){.event-form{max-width:1000px}}.image-preview{background:#f9f9f9;border:1px solid #ddd;border-radius:4px;margin:1rem 0;padding:1rem}.image-preview img{display:block;margin:0 auto}.image-status{color:#666;font-size:.875rem;margin-top:.5rem;padding:.25rem;text-align:center}.image-status small{background:#f0f0f0;border-radius:4px;padding:2px 8px}.error-text{color:#f44;display:block;font-size:.8em;margin-top:4px}.form-group input[required].missing,.form-group select[required].missing,.form-group textarea[required].missing{background-color:#fff0f0;border:2px solid #f44}.form-section{border:1px solid #eee;border-radius:4px;margin-bottom:2rem;padding:1rem}.form-section h3{color:#333;margin-bottom:1rem;margin-top:0}.form-group.checkbox{align-items:center;display:flex;gap:.5rem}.form-group.checkbox input[type=checkbox]{margin:0}.datetime-group{border:1px solid #eee;border-radius:4px;margin-bottom:1rem;padding:1rem}.datetime-group h4{color:#666;margin-bottom:1rem;margin-top:0}.add-time-btn,.remove-time-btn{border:none;border-radius:4px;cursor:pointer;margin:.5rem 0;padding:.5rem 1rem}.add-time-btn{background-color:#4caf50;color:#fff}.remove-time-btn{background-color:#f44336;color:#fff;margin-left:1rem}.form-row{align-items:flex-end;display:flex;gap:1rem}.map-preview{border:1px solid #ddd;border-radius:4px;margin-top:10px;overflow:hidden}.type-selection-container{align-items:center;display:flex;gap:10px}.ai-suggest-button{background:#e3f2fd;border:1px solid #2196f3;border-radius:4px;color:#1565c0;cursor:pointer;padding:8px 16px;transition:all .2s}.ai-suggest-button:hover:not(:disabled){background:#bbdefb}.ai-suggest-button:disabled{cursor:not-allowed;opacity:.6}.ai-classify-button{background-color:#f8f9fa;border:1px solid #ddd;border-radius:4px;cursor:pointer;padding:8px 16px;transition:all .3s ease}.ai-classify-button:hover:not(:disabled){background-color:#e9ecef}.ai-classify-button:disabled{cursor:not-allowed;opacity:.6}.ai-classify-button.loading{background-color:#e9ecef;cursor:wait;position:relative}.ai-classify-button.loading:after{animation:button-loading-spinner 1s ease infinite;border:2px solid #0000;border-radius:50%;border-top-color:#666;content:"";height:16px;margin-top:-8px;position:absolute;right:8px;top:50%;width:16px}@keyframes button-loading-spinner{0%{transform:rotate(0turn)}to{transform:rotate(1turn)}}.event-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;overflow:hidden}.event-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:16px 20px}.event-title-section h2{color:#2c3e50;font-size:1.5rem;margin:0}.status-tag{border-radius:4px;display:inline-block;font-size:.8rem;margin-left:8px;padding:4px 8px}.status-tag.public{background:#e3f2fd;color:#1976d2}.status-tag.private{background:#fbe9e7;color:#d32f2f}.event-content{padding:20px}.info-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000d;margin-bottom:24px;padding:20px}.info-section h3{border-bottom:2px solid #e3f2fd;color:#1a237e;font-size:1.1rem;margin-bottom:16px;padding-bottom:8px}.info-row{display:flex;flex-wrap:wrap;gap:8px;line-height:1.6;margin-bottom:12px}.info-row strong{color:#37474f;display:inline-block;font-weight:500;min-width:140px}.info-row p{flex:1 1;margin:0;min-width:200px;white-space:pre-wrap}.info-row a.event-link{color:#1976d2;flex:1 1;text-decoration:none;word-break:break-all}.info-row a.event-link:hover{text-decoration:underline}.stats-container{display:flex;gap:24px}.stat-item{flex:1 1;text-align:center}.stat-value{color:#2196f3;display:block;font-size:1.5rem;font-weight:700}.stat-label{color:#78909c;font-size:.9rem}.event-meta{border-top:1px solid #e3f2fd;color:#546e7a;display:flex;font-size:.9rem;gap:8px;margin-top:20px;padding-top:16px}.event-meta span{color:#78909c}.btn-delete,.btn-edit{border:none;border-radius:4px;cursor:pointer;font-weight:500;margin-left:8px;padding:8px 16px}.btn-edit{background:#e3f2fd;color:#1976d2}.btn-delete{background:#fbe9e7;color:#d32f2f}.title-row{align-items:center;display:flex;gap:12px}.event-checkbox{cursor:pointer;height:20px;width:20px}.status-controls{align-items:center;display:flex;gap:8px}.visibility-toggle{border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:500;padding:4px 8px}.visibility-toggle.public{background:#fbe9e7;color:#d32f2f}.visibility-toggle.private{background:#e3f2fd;color:#1976d2}.filters-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000d;margin-bottom:24px;padding:20px}.filters-row{margin-bottom:16px}.filters-row:last-child{margin-bottom:0}.filters-row.actions{border-top:1px solid #eee;justify-content:space-between;padding-top:16px}.filter-group{align-items:center;display:flex;gap:8px}.filter-group.search{flex:1 1}.filter-group.date-range{align-items:center;display:flex;gap:8px}.location-input,.search-input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100%}.select-filter{cursor:pointer}.select-filter:hover{border-color:#bbb}.select-filter:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a;outline:none}.sort-order-button{background:#fff}.batch-actions{gap:10px}.batch-actions button,.batch-actions select{background-color:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 12px}.batch-actions button:hover,.batch-actions select:hover{background-color:#f0f0f0}.batch-actions select{min-width:150px}.results-info{color:#546e7a;font-size:.9rem;white-space:nowrap}.search-section{align-items:center;display:flex;gap:16px}.results-info-container{margin-bottom:16px;padding:12px 0}.results-count{color:#546e7a;font-size:.95rem;font-weight:500}.dashboard-container{margin:0 auto;max-width:1400px;padding:24px}.dashboard-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:32px}.dashboard-title{color:#1a237e;font-size:28px;font-weight:600;margin:0}.dashboard-actions{display:flex;gap:12px}.action-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:8px;padding:12px 20px;transition:transform .1s ease,box-shadow .2s ease}.action-button:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-1px)}.action-button:active{transform:translateY(0)}.action-button.primary{background:#2196f3;color:#fff}.action-button.secondary{background:#e3f2fd;color:#1976d2}.action-button .icon{font-size:18px;line-height:1}.event-images{margin-top:20px}.image-gallery{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.image-thumbnail{border-radius:8px;cursor:pointer;height:100px;overflow:hidden;transition:transform .2s;width:100px}.image-thumbnail:hover{transform:scale(1.05)}.image-thumbnail img{height:100%;object-fit:cover;width:100%}.image-modal{align-items:center;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{max-height:90vh;max-width:90vw;position:relative}.modal-content img{max-height:90vh;max-width:100%;object-fit:contain}.close-button{background:none;border:none;color:#fff;cursor:pointer;font-size:30px;padding:10px;position:absolute;right:-40px;top:-40px}.close-button:hover{color:#ddd}.event-link{color:#06c;text-decoration:none;word-break:break-all}.event-link:hover{text-decoration:underline}.filters-row.search-and-sort{padding:10px 0}.search-section{flex:1 1;margin-right:20px}.search-input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px;width:100%}.sort-group select{min-width:150px}.dashboard-header{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px}.filters-container{display:flex;flex-direction:column;gap:16px}.filters-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.filters-row.search-and-sort{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.filters-row.search-and-sort .search-section{align-items:center;display:flex;flex:1 1 720px;gap:12px;max-width:760px;width:100%}.filters-row.search-and-sort .search-input{border:1px solid #ddd;border-radius:6px;flex:1 1 auto;font-size:16px;min-width:320px;padding:10px 14px;width:100%}.filters-row.search-and-sort .search-button{align-items:center;display:inline-flex;flex:0 0 auto;justify-content:center;min-width:-webkit-fit-content;min-width:fit-content;padding:10px 18px;white-space:nowrap;width:auto}.search-input:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a;outline:none}.sort-group{align-items:center;display:flex;gap:8px}.select-filter{background-color:#fff;min-width:120px}.select-filter,.sort-order-button{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px 12px}.sort-order-button{background:#f5f5f5;cursor:pointer}.sort-order-button:hover{background:#e9e9e9}.date-range{align-items:center;display:flex;gap:8px}.date-input{padding:8px}.date-input,.location-input{border:1px solid #ddd;border-radius:4px;font-size:14px}.location-input{min-width:200px;padding:8px 12px}.batch-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.btn-batch,.btn-select-all{background:#e3f2fd;border:none;border-radius:4px;color:#1976d2;cursor:pointer;font-weight:500;padding:8px 16px}.btn-batch.delete{background:#fbe9e7;color:#d32f2f}.btn-batch:hover,.btn-select-all:hover{opacity:.9}.batch-field-edit{background-color:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;margin-top:16px;padding:16px}.field-edit-group{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.field-edit-group label{align-items:center;color:#495057;display:flex;font-size:14px;gap:6px}.field-edit-group input[type=checkbox]{margin:0}.field-input{border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:200px;padding:8px 12px}.field-input:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a;outline:none}.field-edit-group .btn-batch{background-color:#2196f3;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:8px 16px;transition:background-color .2s}.field-edit-group .btn-batch:hover{background-color:#1976d2}.field-edit-group .btn-batch:disabled{background-color:#ccc;cursor:not-allowed}.field-value-container{align-items:flex-start;display:flex;flex:1 1;gap:8px}.field-value-container p,.field-value-container span{flex:1 1;margin:0;white-space:pre-wrap}.expand-button{align-self:flex-start;background:#e3f2fd;border:none;border-radius:4px;color:#1976d2;cursor:pointer;font-size:12px;padding:2px 8px;transition:background-color .2s;white-space:nowrap}.expand-button:hover{background:#bbdefb}.field-filters-container{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;width:100%}.field-filter-item{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;gap:8px;padding:8px}.field-filter-input{border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:200px;padding:8px 12px}.field-filter-input:focus{border-color:#2196f3;box-shadow:0 0 0 2px #2196f31a;outline:none}.remove-filter-button{align-items:center;background:#fbe9e7;border:none;border-radius:4px;color:#d32f2f;cursor:pointer;display:flex;font-size:12px;justify-content:center;padding:4px 8px;transition:background-color .2s}.remove-filter-button:hover{background:#ffcdd2}.add-filter-button{background:#e3f2fd;border:none;border-radius:4px;color:#1976d2;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.add-filter-button:hover{background:#bbdefb}.load-more-container{display:flex;justify-content:center;margin:20px 0 30px}.upcoming-summary-table{background:#fff;border:1px solid #e5e7eb;border-collapse:collapse;border-radius:6px;margin-bottom:10px;overflow:hidden;width:100%}.upcoming-summary-table td,.upcoming-summary-table th{border-bottom:1px solid #f1f5f9;padding:10px 12px;text-align:left}.upcoming-summary-table th{background:#f8fafc;color:#334155;font-size:.9rem;font-weight:600}.upcoming-summary-table td{color:#0f172a;font-weight:600}.clear-filters-inline-btn{background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;color:#334155;cursor:pointer;margin-left:10px;padding:6px 10px}.clear-filters-inline-btn:hover{background:#f1f5f9}.csv-import-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:0 auto;max-width:800px;padding:20px}.import-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.progress-info{color:#666;font-size:14px}.import-actions{display:flex;gap:10px;justify-content:space-between;margin-top:20px}.file-input{border:2px dashed #ddd;border-radius:8px;margin:20px 0;padding:20px;text-align:center;width:100%}.button{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:10px 20px}.button.primary{background:#2196f3;color:#fff}.button.secondary{background:#e3f2fd;color:#1976d2}.button:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.csv-import-container{padding:15px}.import-actions{flex-direction:column}.button{margin:5px 0;width:100%}}.parse-errors{background-color:#fff3cd;border:1px solid #ffeeba;border-radius:4px;margin:1rem 0;padding:1rem}.parse-errors h3{color:#856404;margin-top:0}.parse-errors ul{margin:0;padding-left:20px}.parse-errors li{color:#856404;margin-bottom:.5rem}.import-dialog{padding:20px}.import-type-selector{display:flex;gap:10px;margin-bottom:20px}.import-type-selector button{background:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;padding:8px 16px}.import-type-selector button.active{background:#007bff;border-color:#0056b3;color:#fff}.main-navigation{background:#fff;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem;position:-webkit-sticky;position:sticky;top:0;z-index:100}.nav-container{display:flex;gap:1rem;margin:0 auto;max-width:1400px;padding:1rem 2rem}.nav-link{border:2px solid #0000;border-radius:4px;color:#666;font-weight:500;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s}.nav-link:hover{background:#f8f9fa;color:#007bff}.nav-link.active{background:#e7f3ff;border-color:#007bff;color:#007bff}@media screen and (max-width:768px){.nav-container{flex-direction:column;gap:.5rem;padding:.75rem 1rem}.nav-link{padding:.5rem 1rem;text-align:center}}.admin-dashboard{margin:0 auto;max-width:1200px;padding:20px}.modal-overlay{align-items:flex-start;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;overflow-y:auto;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:8px;margin-top:20px;position:relative;width:100%}@media (max-width:768px){.admin-dashboard,.modal-overlay{padding:10px}.modal{margin-top:10px}}.scraper-orchestration{padding:.75rem}.scraper-orchestration h2{color:#333;margin-bottom:1.5rem}.scraper-orchestration h3{color:#555;font-size:1.2rem;margin-bottom:.75rem}.loading{color:#666;padding:1.25rem}.error-message{background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;margin-bottom:1rem;padding:.75rem 1rem}.error-message strong{display:block;margin-bottom:.5rem}.error-message small{color:#856404;display:block;font-size:.875rem;line-height:1.5;margin-top:.75rem}.retry-button{background:#dc3545;border:none;border-radius:4px;cursor:pointer;font-weight:500;margin-top:.75rem;padding:.5rem 1rem}.retry-button:hover{background:#c82333}.status-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.25rem;padding:1rem 1.25rem}.status-info{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.status-info p{color:#666;margin:.5rem 0}.status-healthy{color:#28a745;font-weight:600}.status-error{color:#dc3545;font-weight:600}.timestamp{color:#999;font-size:.9rem}.local-server-card{margin-bottom:1.25rem}.local-server-actions{display:flex;flex-direction:column;gap:.5rem}.local-server-row{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem}.local-server-indicator{border-radius:50%;flex-shrink:0;height:10px;width:10px}.local-server-indicator.running{background:#28a745;box-shadow:0 0 0 3px #28a74540}.local-server-indicator.stopped{background:#dc3545;box-shadow:0 0 0 3px #dc354540}.local-server-indicator.checking{background:#6c757d;opacity:.6}.local-server-indicator-label{color:#495057;font-size:.9rem;font-weight:500;min-width:4.5rem}.server-btn{border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:.4rem .85rem;transition:background .15s}.server-btn:disabled{cursor:not-allowed;opacity:.5}.start-btn{background:#28a745}.start-btn:hover:not(:disabled){background:#218838}.stop-btn{background:#dc3545}.stop-btn:hover:not(:disabled){background:#bb2d3b}.restart-btn{background:#fd7e14}.restart-btn:hover:not(:disabled){background:#e06c0a}.automatic-btn{background:#5b21b6}.automatic-btn:hover:not(:disabled){background:#4c1d95}.local-server-msg{font-size:.9rem;margin:0}.local-server-msg.success{color:#28a745}.local-server-msg.error{color:#dc3545}.local-server-hint{color:#6c757d;font-size:.8rem;margin:.5rem 0 0}.local-server-hint code{background:#f1f3f5;border-radius:4px;padding:.15rem .4rem}.scrapers-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.25rem;padding:1rem 1.25rem}.table-wrapper{overflow-x:auto}.scrapers-table{border-collapse:collapse;font-size:.9375rem;margin-top:.25rem;width:100%}.scrapers-table th{background:#495057;border:none;color:#fff;font-weight:600;padding:.5rem .75rem;text-align:left;white-space:nowrap}.scrapers-table thead tr:first-child th:first-child{border-radius:6px 0 0 0}.scrapers-table thead tr:first-child th:last-child{border-radius:0 6px 0 0}.scrapers-table .th-sort-btn{align-items:center;background:#0000;border:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;font-weight:600;gap:.2rem;padding:0;text-align:left;width:100%}.scrapers-table .th-sort-btn:hover{text-decoration:underline}.scrapers-table thead tr.scrapers-table-filter-row th{background:#5c636a;font-weight:400;padding:.35rem .5rem;vertical-align:middle;white-space:normal}.scrapers-table .th-filter-control{border:1px solid #adb5bd;border-radius:4px;box-sizing:border-box;font-size:.8125rem;max-width:12rem;padding:.3rem .4rem;width:100%}.scrapers-table thead tr.scrapers-table-filter-row th.th-filter-spacer{padding:.35rem .5rem}.scrapers-table td{border-bottom:1px solid #e9ecef;padding:.5rem .75rem;vertical-align:middle}.scrapers-table tbody tr:hover{background:#f1f3f5}.scrapers-table tbody tr:last-child td{border-bottom:none}.scraper-name{color:#007bff;font-weight:500}.enabled{background:#d4edda;color:#28a745}.disabled,.enabled{border-radius:4px;display:inline-block;font-weight:600;padding:.25rem .5rem}.disabled{background:#e9ecef;color:#6c757d}.health-badge{border-radius:4px;display:inline-block;font-size:.875rem;font-weight:500;padding:.25rem .5rem}.health-badge.healthy{background:#d4edda;color:#155724}.health-badge.degraded{background:#fff3cd;color:#856404}.health-badge.unknown{background:#e9ecef;color:#6c757d}.health-badge.error,.health-badge.unhealthy{background:#f8d7da;color:#721c24}.health-badge.available{background:#d1ecf1;color:#0c5460}.last-successful-run{white-space:nowrap}.last-successful-run.late{color:#c0392b;font-weight:700}.priority-badge{border-radius:4px;display:inline-block;font-size:.875rem;font-weight:600;min-width:2rem;padding:.25rem .75rem;text-align:center}.priority-badge.priority-1{background:red;color:#fff}.priority-badge.priority-2{background:orange;color:#fff}.priority-badge.priority-3{background:#ff0;color:#333}.priority-badge.priority-4{background:#32cd32;color:#fff}.priority-badge.priority-5{background:#90ee90;color:#333}.priority-badge.priority--5{background:#e9ecef;color:#495057}.trigger-badge{border-radius:4px;display:inline-block;font-size:.875rem;font-weight:500;padding:.25rem .75rem;text-transform:capitalize}.trigger-badge.locally{background:#d1ecf1;color:#0c5460}.trigger-badge.manual-local{background:#ede9fe;color:#6d28d9}.trigger-badge.scheduled-local{background:#dcfce7;color:#166534}.trigger-badge.cloud{background:#e7f3ff;color:#004085}.btn-run{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:background-color .3s}.btn-run:hover:not(:disabled){background:#0056b3}.btn-run:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.run-actions{display:flex;flex-wrap:wrap;gap:.5rem}.health-status{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:1.5rem}.health-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:1rem}.health-item{border:2px solid;border-radius:6px;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.health-item.healthy{background:#d4edda;border-color:#28a745;color:#155724}.health-item.unhealthy{background:#f8d7da;border-color:#dc3545;color:#721c24}.health-item strong{font-size:1rem}.health-item span{font-size:.875rem;text-transform:capitalize}.progress-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:1.25rem;padding:1rem 1.25rem}.progress-cards{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));margin-top:.75rem}.progress-card{background:#f8f9fa;border:2px solid #dee2e6;border-radius:8px;padding:.75rem;transition:all .3s}.progress-card.running{background:#f0f9f4;border-color:#28a745}.progress-card.completed{background:#e6f7ff;border-color:#17a2b8}.progress-card.error{background:#fff5f5;border-color:#dc3545}.progress-card.cancelled{background:#f5f5f5;border-color:#6c757d}.progress-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:.5rem}.progress-header .scraper-name{color:#007bff;font-size:1.1rem;font-weight:600}.progress-header .run-id{color:#6c757d;font-family:monospace;font-size:.875rem}.status-badge{border-radius:4px;font-size:.875rem;font-weight:500;padding:.25rem .75rem}.status-badge.running{background:#d4edda;color:#155724}.status-badge.scraping{background:#cce5ff;color:#004085}.status-badge.cancelling{background:#fff3cd;color:#856404}.status-badge.completed{background:#d1ecf1;color:#0c5460}.status-badge.error{background:#f8d7da;color:#721c24}.status-badge.cancelled{background:#e9ecef;color:#495057}.progress-time-info{background:#fff;border-radius:4px;font-size:.875rem;margin-bottom:.5rem;padding:.5rem .75rem}.end-time,.start-time{color:#666;margin-bottom:.25rem}.progress-phase{background:#fff;border-radius:4px;font-size:.95rem;padding:.5rem .75rem}.progress-bar-container,.progress-phase{margin-bottom:.75rem}.progress-bar-label{color:#666;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:.5rem}.progress-bar{background:#e9ecef;border-radius:12px;height:24px;overflow:hidden;position:relative;width:100%}.progress-bar-fill{background:linear-gradient(90deg,#28a745,#20c997);border-radius:12px;height:100%;transition:width .3s ease}.progress-stats{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-bottom:.5rem}.stat-item{background:#fff;border-radius:4px;display:flex;flex-direction:column;padding:.5rem .75rem}.stat-item.error{background:#fff5f5}.stat-label{color:#6c757d;font-size:.75rem;margin-bottom:.25rem}.stat-value{color:#333;font-size:1.1rem;font-weight:600}.stat-item.error .stat-value{color:#dc3545}.last-event{background:#fff;border-radius:4px;color:#666;overflow:hidden;padding:.5rem .75rem;text-overflow:ellipsis;white-space:nowrap}.last-event,.progress-time{font-size:.875rem;margin-bottom:.5rem}.progress-time{color:#6c757d;display:flex;justify-content:space-between}.current-item{background:#fff;border-radius:4px;color:#999;font-size:.75rem;overflow:hidden;padding:.5rem .75rem;text-overflow:ellipsis;white-space:nowrap}.progress-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.btn-cancel{background:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:background-color .3s}.btn-cancel:hover:not(:disabled){background:#c82333}.btn-cancel:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.btn-view-events{background:#17a2b8;border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-block;font-size:.875rem;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:background-color .3s}.btn-view-events:hover{background:#138496;color:#fff;text-decoration:none}.full-auto-batch-card{border-left:4px solid #6f42c1}.full-auto-batch-header{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:.75rem}.full-auto-batch-header h3{margin:0}.full-auto-batch-header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.progress-section-header{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:.75rem}.progress-section-header h3{margin:0}.server-btn.stop-scraping-btn{background:#6c2a2a;border:none;color:#fff}.server-btn.stop-scraping-btn:hover:not(:disabled){background:#5a2222}.server-btn.stop-scraping-btn:disabled{cursor:not-allowed;opacity:.55}.full-auto-dismiss{background:#f8f9fa;border:1px solid #ccc;border-radius:6px;color:#444;cursor:pointer;font-size:.85rem;padding:.35rem .75rem}.full-auto-dismiss:hover{background:#e9ecef}.full-auto-loading{color:#666;margin:0}.full-auto-meta{align-items:center;color:#444;display:flex;flex-wrap:wrap;font-size:.95rem;gap:.5rem 1rem;margin:0 0 .5rem}.full-auto-batch-id{font-family:ui-monospace,monospace;font-size:.85rem}.full-auto-status-pill{border-radius:999px;display:inline-block;font-size:.8rem;font-weight:600;letter-spacing:.02em;padding:.15rem .5rem;text-transform:uppercase}.full-auto-status-pill.status-running{background:#cce5ff;color:#004085}.full-auto-status-pill.status-completed{background:#d4edda;color:#155724}.full-auto-status-pill.status-error{background:#f8d7da;color:#721c24}.full-auto-status-pill.status-cancelled{background:#fde8e8;color:#7a1e1e}.full-auto-status-pill.status-unknown{background:#e2e3e5;color:#383d41}.full-auto-started{color:#666;font-size:.9rem}.full-auto-last-msg{background:#f8f9fa;border-radius:6px;color:#333;font-size:.9rem;margin:0 0 .75rem;padding:.5rem .65rem}.full-auto-summary{margin-bottom:1rem}.full-auto-bar-label{color:#555;font-size:.85rem;margin-bottom:.35rem}.full-auto-bar{background:#e9ecef;border-radius:4px;height:8px;overflow:hidden}.full-auto-bar-fill{background:linear-gradient(90deg,#6f42c1,#9b59d6);border-radius:4px;height:100%;transition:width .35s ease}.full-auto-current-run{background:#f3e8ff;border:1px solid #e2d5f5;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem}.full-auto-current-run h4{color:#4a148c;font-size:1rem;margin:0 0 .5rem}.full-auto-run-stats{color:#333;font-size:.9rem;margin:0;padding-left:1.1rem}.full-auto-run-stats li{margin-bottom:.25rem}.full-auto-run-stats strong{color:#555;margin-right:.35rem}.full-auto-waiting{color:#6c757d;font-size:.9rem;font-style:italic;margin:0}.full-auto-empty-order{background:#fff8e6;border:1px solid #ffe08a;border-radius:6px;color:#5c4a00;font-size:.9rem;margin:0 0 .75rem;padding:.6rem .75rem}.full-auto-live-hint{color:#5a3d8a}.full-auto-live-hint,.progress-local-hint{font-size:.88rem;line-height:1.45;margin:0 0 .75rem}.progress-local-hint{background:#e7f3ff;border-radius:6px;color:#0c5460;padding:.5rem .65rem}.progress-local-hint code{font-size:.85em}.full-auto-table-wrap{overflow-x:auto}.full-auto-table{border-collapse:collapse;font-size:.9rem;width:100%}.full-auto-table td,.full-auto-table th{border-bottom:1px solid #e9ecef;padding:.45rem .5rem;text-align:left}.full-auto-table th{color:#666;font-size:.8rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.full-auto-row-active{background:#f0f7ff}.full-auto-job-status{border-radius:4px;display:inline-block;font-size:.8rem;font-weight:500;padding:.1rem .4rem}.full-auto-job-status.st-pending{background:#e9ecef;color:#495057}.full-auto-job-status.st-running{background:#cce5ff;color:#004085}.full-auto-job-status.st-completed,.full-auto-job-status.st-success{background:#d4edda;color:#155724}.full-auto-job-status.st-error{background:#f8d7da;color:#721c24}.full-auto-job-status.st-cancelled,.full-auto-job-status.st-skipped{background:#fff3cd;color:#856404}.full-auto-job-note{color:#666;font-size:.85rem;max-width:28rem;word-break:break-word}@media screen and (max-width:768px){.scraper-orchestration{padding:.5rem}.status-info{grid-template-columns:1fr}.table-wrapper{overflow-x:scroll}.scrapers-table{min-width:600px}.health-grid,.progress-cards{grid-template-columns:1fr}.progress-header{align-items:flex-start;flex-direction:column}}.scraper-reports{grid-gap:1rem;display:grid;gap:1rem;padding:.5rem 0}.loading{color:#64748b;padding:2rem;text-align:center}.chart-panel,.empty-state,.error-message,.reports-controls-card,.reports-page-header,.reports-table-container,.summary-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 12px 32px #0f172a0f}.reports-page-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between;padding:1.4rem 1.5rem}.reports-eyebrow{color:#2563eb;font-size:.75rem;font-weight:700;letter-spacing:.12em;margin:0 0 .35rem;text-transform:uppercase}.reports-page-header h2{color:#0f172a;font-size:1.8rem;margin:0}.reports-subtitle{color:#64748b;line-height:1.5;margin:.5rem 0 0;max-width:720px}.reports-page-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.reports-last-loaded{color:#64748b;font-size:.92rem}.ghost-button,.refresh-button,.retry-button,.show-more-button{border:none;border-radius:10px;cursor:pointer;font-weight:600;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.refresh-button,.show-more-button{background:#2563eb;color:#fff;padding:.7rem 1rem}.ghost-button{background:#e2e8f0;color:#0f172a;padding:.8rem 1rem}.retry-button{background:#dc2626;color:#fff;padding:.7rem 1rem}.ghost-button:hover,.refresh-button:hover,.retry-button:hover,.show-more-button:hover{box-shadow:0 10px 24px #0f172a1f;transform:translateY(-1px)}.error-message{align-items:center;background:#fff5f5;border-color:#fecaca;color:#991b1b;display:flex;flex-wrap:wrap;gap:.75rem 1rem;padding:1rem 1.25rem}.error-message strong{display:inline-block}.reports-controls-card{grid-gap:1rem;display:grid;gap:1rem;padding:1.2rem 1.25rem}.reports-range-switcher{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.reports-control-group{align-items:center;display:inline-flex;flex-wrap:wrap;gap:.75rem}.section-label{color:#475569;font-size:.92rem;font-weight:600}.segmented-control{background:#f1f5f9;border-radius:999px;display:inline-flex;gap:.35rem;padding:.25rem}.segmented-control button{background:#0000;border:none;border-radius:999px;color:#475569;cursor:pointer;font-weight:700;padding:.55rem .95rem}.segmented-control button.active{background:#0f172a;color:#fff}.reports-custom-range,.reports-filters-grid{grid-gap:.9rem;display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.filter-field{grid-gap:.45rem;color:#334155;display:grid;font-size:.92rem;font-weight:600;gap:.45rem}.filter-date,.filter-select{background:#fff;border:1px solid #cbd5e1;border-radius:12px;color:#0f172a;font-size:.95rem;min-height:44px;padding:.7rem .9rem;width:100%}.filter-date:focus,.filter-select:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1f;outline:none}.filter-toggle{align-items:center;color:#334155;display:inline-flex;font-size:.92rem;font-weight:600;gap:.55rem}.reports-active-state{display:flex;flex-wrap:wrap;gap:.55rem}.active-pill{align-items:center;background:#eff6ff;border-radius:999px;color:#1d4ed8;display:inline-flex;font-size:.85rem;font-weight:700;min-height:32px;padding:0 .8rem}.summary-cards{grid-gap:.9rem;display:grid;gap:.9rem;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.summary-card{grid-gap:.4rem;display:grid;gap:.4rem;padding:1rem 1.1rem}.stat-label{color:#64748b;font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.stat-value-large{color:#0f172a;font-size:1.7rem;font-weight:800;line-height:1.1}.stat-value-large.success{color:#059669}.stat-value-large.warning{color:#d97706}.stat-value-large.error{color:#dc2626}.reports-chart-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.chart-panel{padding:1rem 1.1rem .75rem}.chart-panel-header{align-items:flex-start;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.5rem}.chart-panel-header h3{color:#0f172a;margin:0}.chart-panel-header p{color:#64748b;font-size:.92rem;line-height:1.45;margin:.35rem 0 0}.empty-state{padding:2rem 1.25rem;text-align:center}.empty-state h3{color:#0f172a;margin:0 0 .5rem}.empty-state p{color:#64748b;margin:0}.reports-table-container{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto;overflow-y:visible}.reports-table-toolbar{align-items:center;display:flex;gap:1rem;justify-content:space-between;padding:1.15rem 1.25rem 0}.reports-table-toolbar h3{color:#0f172a;margin:0}.reports-table-toolbar p{color:#64748b;font-size:.92rem;margin:.25rem 0 0}.reports-table{border-collapse:collapse;margin-top:.85rem;min-width:1100px;width:100%}.reports-table th{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#334155;font-size:.82rem;font-weight:700;letter-spacing:.04em;padding:.9rem 1rem;text-align:left;text-transform:uppercase;white-space:nowrap}.reports-table td{border-bottom:1px solid #eef2f7;color:#1e293b;padding:.9rem 1rem;vertical-align:top}.reports-table tbody tr:hover{background:#f8fafc}.reports-table tbody tr.success{background:#f8fffc}.reports-table tbody tr.error{background:#fffdfd}.scraper-name{color:#1d4ed8;font-weight:700}.status-badge,.trigger-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.82rem;font-weight:700;padding:.35rem .7rem}.status-badge.completed,.status-badge.success{background:#dcfce7;color:#166534}.status-badge.cancelled,.status-badge.error,.status-badge.failed{background:#fee2e2;color:#991b1b}.status-badge.initializing,.status-badge.running,.status-badge.scraping{background:#dbeafe;color:#1d4ed8}.trigger-badge.scheduled{background:#e0f2fe;color:#075985}.trigger-badge.manual{background:#fef3c7;color:#92400e}.trigger-badge.manual_local{background:#ede9fe;color:#6d28d9}.trigger-badge.scheduled_local{background:#dcfce7;color:#166534}.trigger-badge.locally{background:#ede9fe;color:#6d28d9}.trigger-badge.unknown{background:#e2e8f0;color:#475569}.events-count{font-weight:700}.total-urls-hint{color:#64748b;font-size:.82rem}.events-link{color:#2563eb;font-weight:700;text-decoration:none}.events-link:hover{text-decoration:underline}.no-errors,.no-events-link{color:#94a3b8}.error-details-container{display:inline-block;position:relative}.error-count{color:#dc2626;cursor:pointer;font-weight:700;text-decoration:underline;-webkit-text-decoration-style:dotted;text-decoration-style:dotted}.error-details-modal{align-items:center;background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:1.5rem;position:fixed;z-index:1000}.error-details-content{background:#fff;border-radius:18px;display:flex;flex-direction:column;max-height:80vh;overflow:hidden;width:min(900px,100%)}.error-details-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;gap:1rem;justify-content:space-between;padding:1rem 1.25rem}.error-details-header h4{color:#0f172a;margin:0}.error-details-close{background:#f1f5f9;border:none;border-radius:999px;color:#334155;cursor:pointer;font-size:1.2rem;height:34px;width:34px}.error-details-list{overflow-y:auto;padding:1rem 1.25rem 1.25rem}.error-detail-item{background:#fff5f5;border-left:4px solid #dc2626;border-radius:12px;margin-bottom:.85rem;padding:.85rem 1rem}.error-detail-item:last-child{margin-bottom:0}.error-detail-item pre{color:#7f1d1d;font-family:Consolas,Courier New,monospace;font-size:.88rem;margin:0;white-space:pre-wrap;word-break:break-word}.no-reports{color:#64748b;padding:2rem 1rem;text-align:center}.show-more-container{display:flex;justify-content:center;padding:1.1rem 1.25rem 1.3rem}@media screen and (max-width:900px){.reports-page-header{flex-direction:column}.reports-page-actions{justify-content:space-between;width:100%}}@media screen and (max-width:640px){.scraper-reports{gap:.85rem}.reports-control-group{width:100%}.chart-panel,.empty-state,.error-message,.reports-controls-card,.reports-page-header,.reports-table-container,.summary-card{border-radius:16px}.chart-panel,.reports-controls-card,.reports-page-header,.summary-card{padding-left:1rem;padding-right:1rem}.segmented-control{justify-content:space-between;width:100%}.segmented-control button{flex:1 1;text-align:center}}.scrapers-dashboard{background:radial-gradient(circle at top left,#3b82f614,#0000 22%),linear-gradient(180deg,#f8fbff,#f4f7fb);min-height:100vh}.dashboard-header{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border-bottom:1px solid #e2e8f0e6;box-shadow:0 14px 36px #0f172a14;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.25rem;padding:1rem 1.5rem}.dashboard-header h1{color:#0f172a;font-size:1.75rem;margin:0}.tab-navigation{display:flex;gap:.5rem}.tab-button{background:#fff;border:1px solid #bfdbfe;border-radius:12px;box-shadow:0 6px 18px #2563eb14;color:#2563eb;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.tab-button:hover{background:#eff6ff}.tab-button.active{background:#2563eb;border-color:#2563eb;color:#fff}.dashboard-content{margin:0 auto;max-width:1400px;padding:0 1.5rem 1.5rem}@media screen and (max-width:768px){.dashboard-header{align-items:flex-start;flex-direction:column;padding:1rem}.dashboard-header h1{font-size:1.5rem}.tab-navigation{width:100%}.tab-button{flex:1 1;text-align:center}.dashboard-content{padding:0 1rem 1rem}}.hosts-dashboard{margin:0 auto;max-width:1600px;padding:0 1rem 2rem}.hosts-dashboard-header{margin-bottom:1.25rem}.hosts-dashboard-title-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.hosts-dashboard-title-row h1{color:#1e293b;font-size:1.5rem;margin:0}.hosts-refresh-btn{background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;cursor:pointer;font-size:.875rem;padding:.4rem 1rem}.hosts-refresh-btn:hover:not(:disabled){background:#e2e8f0}.hosts-refresh-btn:disabled{cursor:not-allowed;opacity:.5}.hosts-tab-nav{border-bottom:2px solid #e2e8f0;display:flex;gap:0}.hosts-tab-btn{background:none;border:none;border-bottom:2px solid #0000;color:#64748b;cursor:pointer;font-size:.9rem;font-weight:500;margin-bottom:-2px;padding:.5rem 1.25rem;transition:color .15s,border-color .15s}.hosts-tab-btn:hover{color:#1e293b}.hosts-tab-btn.active{border-bottom-color:#2563eb;color:#2563eb}.hosts-error-banner{align-items:center;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;color:#991b1b;display:flex;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem}.hosts-retry-btn{background:#fff;border:1px solid #f87171;border-radius:4px;cursor:pointer;font-size:.8rem;padding:.3rem .75rem}.hosts-dashboard-content{min-height:400px}.hosts-table-and-detail{display:flex;gap:1rem}.hosts-table-pane{flex:1 1;min-width:0;transition:flex .2s}.hosts-table-pane.with-detail{flex:3 1}.hosts-detail-pane{flex:2 1;max-width:520px;min-width:340px}.hosts-table-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.hosts-search-input{flex:1 1 220px;min-width:180px;padding:.4rem .6rem}.hosts-filter-select,.hosts-search-input{border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem}.hosts-filter-select{background:#fff;padding:.4rem .5rem}.hosts-result-count{color:#64748b;font-size:.8rem;white-space:nowrap}.hosts-table-wrapper{border:1px solid #e2e8f0;border-radius:8px;overflow-x:auto}.hosts-table{border-collapse:collapse;font-size:.85rem;width:100%}.hosts-table thead th{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#334155;font-weight:600;padding:.6rem .5rem;position:-webkit-sticky;position:sticky;text-align:left;top:0;white-space:nowrap}.hosts-table thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.hosts-table thead th.sortable:hover{color:#2563eb}.hosts-table tbody tr{cursor:pointer;transition:background .1s}.hosts-table tbody tr:hover{background:#f1f5f9}.hosts-table tbody tr.selected{background:#dbeafe}.hosts-table td{border-bottom:1px solid #f1f5f9;padding:.5rem;vertical-align:middle}.hosts-cell-title{max-width:260px}.host-title-text{color:#1e293b;font-weight:500}.host-id-text,.host-title-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-id-text{color:#94a3b8;font-size:.72rem}.hosts-cell-center{text-align:center}.hosts-cell-url a{color:#2563eb;font-size:.8rem;text-decoration:none}.hosts-cell-url a:hover{text-decoration:underline}.hosts-posts-link{color:#2563eb;font-weight:600;text-decoration:none}.hosts-posts-link:hover{text-decoration:underline}.host-profile-actions{border-top:1px solid #e2e8f0;margin-top:1.25rem;padding-top:1rem}.host-profile-actions-title{font-size:.95rem;margin:0 0 .35rem}.host-profile-actions-sub{color:#64748b;font-size:.78rem;line-height:1.4;margin:0 0 .75rem}.host-profile-actions-buttons,.host-profile-actions-row{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem}.host-profile-weak-label{align-items:center;color:#475569;display:inline-flex;font-size:.8rem;gap:.35rem}.host-profile-preview-summary{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;font-size:.82rem;margin-bottom:.65rem;padding:.5rem .65rem}.host-profile-preview-fields{color:#334155;display:flex;flex-direction:column;gap:.2rem;margin-top:.35rem}.host-profile-val-status.status-pass{color:#16a34a}.host-profile-val-status.status-warn{color:#d97706}.host-profile-val-status.status-fail{color:#dc2626}.host-profile-btn-danger{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;color:#991b1b;cursor:pointer;font-size:.875rem;padding:.4rem .75rem}.host-profile-btn-danger:hover:not(:disabled){background:#fee2e2}.host-profile-btn-danger:disabled{cursor:not-allowed;opacity:.45}.host-profile-error{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;color:#991b1b;font-size:.82rem;margin:.5rem 0;padding:.5rem .65rem;white-space:pre-wrap}.host-profile-result{font-size:.8rem;margin-top:.5rem}.host-profile-result pre{background:#0f172a;border-radius:6px;color:#e2e8f0;font-size:.72rem;max-height:220px;overflow:auto;padding:.5rem}.host-pipeline-tab{padding:.25rem 0 1rem}.host-pipeline-section{margin-bottom:1.25rem}.host-pipeline-section h3,.host-pipeline-section h4{font-size:1rem;margin:0 0 .5rem}.host-pipeline-hint{color:#64748b;font-size:.8rem;line-height:1.4;margin:0 0 .65rem}.host-pipeline-controls{display:flex;flex-wrap:wrap;font-size:.85rem;gap:.75rem 1rem;margin-bottom:.65rem}.host-pipeline-controls input[type=number]{padding:.25rem .35rem;width:5rem}.host-pipeline-actions{display:flex;flex-wrap:wrap;gap:.5rem}.host-pipeline-table-wrap{border:1px solid #e2e8f0;border-radius:8px;overflow-x:auto}.host-pipeline-code{display:block;font-size:.72rem;margin-top:.2rem}.host-pipeline-json{background:#0f172a;border-radius:8px;color:#e2e8f0;font-size:.72rem;max-height:360px;overflow:auto;padding:.75rem}.hosts-cell-date{color:#64748b;font-size:.8rem;white-space:nowrap}.hosts-missing{color:#94a3b8;font-style:italic}.hosts-empty-row{color:#64748b;padding:2rem!important;text-align:center}.hosts-table-loading{color:#64748b;padding:3rem;text-align:center}.hosts-empty-state{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#334155;padding:2rem 1.5rem}.hosts-empty-title{color:#0f172a;font-size:1.1rem;font-weight:600;margin:0 0 .5rem}.hosts-empty-body{color:#64748b;font-size:.9rem;line-height:1.5;margin:0}.hosts-empty-body code{background:#f1f5f9;border-radius:4px;font-size:.85em;padding:.1rem .35rem}.hosts-postcounts-hint{color:#64748b;font-size:.8rem;margin:0 0 .5rem}.host-type-badge{background:#e2e8f0;border-radius:9999px;color:#475569;display:inline-block;font-size:.75rem;font-weight:500;padding:.15rem .5rem}.host-type-badge.type-venue{background:#dbeafe;color:#1d4ed8}.host-type-badge.type-theater{background:#fce7f3;color:#be185d}.host-type-badge.type-cinema{background:#fef3c7;color:#92400e}.host-type-badge.type-museum{background:#d1fae5;color:#065f46}.host-detail-panel{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;position:-webkit-sticky;position:sticky;top:1rem}.host-detail-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:.75rem 1rem}.host-detail-header h3{font-size:1rem;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-detail-close{background:none;border:none;color:#64748b;cursor:pointer;font-size:1.25rem;line-height:1;padding:.25rem}.host-detail-close:hover{color:#1e293b}.host-detail-body{max-height:calc(100vh - 200px);overflow-y:auto;padding:1rem}.host-detail-cover-section{display:flex;gap:.75rem;margin-bottom:1rem}.host-detail-cover-wrapper{flex:1 1;position:relative}.host-detail-cover-img{border:1px solid #e2e8f0;border-radius:6px;max-height:160px;object-fit:cover;width:100%}.host-detail-cover-badge{border-radius:4px;font-size:.65rem;font-weight:600;padding:.1rem .4rem;position:absolute;right:6px;text-transform:uppercase;top:6px}.host-detail-cover-badge.ok{background:#d1fae5;color:#065f46}.host-detail-cover-badge.svg{background:#fef3c7;color:#92400e}.host-detail-cover-badge.missing{background:#fee2e2;color:#991b1b}.host-detail-cover-placeholder{align-items:center;background:#f1f5f9;border:2px dashed #cbd5e1;border-radius:6px;color:#94a3b8;display:flex;flex:1 1;height:100px;justify-content:center}.host-detail-logo-wrapper{text-align:center;width:64px}.host-detail-logo-img{border:1px solid #e2e8f0;border-radius:6px;height:64px;object-fit:contain;width:64px}.host-detail-logo-label{color:#94a3b8;font-size:.65rem}.host-detail-meta{margin-bottom:1rem}.host-detail-row{border-bottom:1px solid #f8fafc;display:flex;gap:.5rem;padding:.35rem 0}.host-detail-label{color:#64748b;flex:0 0 110px;font-size:.8rem;font-weight:600}.host-detail-value{color:#1e293b;flex:1 1;font-size:.8rem;word-break:break-all}.host-detail-value a{color:#2563eb;text-decoration:none}.host-detail-value a:hover{text-decoration:underline}.host-detail-description{margin-bottom:1rem}.host-detail-desc-text{color:#334155;font-size:.85rem;line-height:1.5;margin:.25rem 0 0}.host-detail-issues{background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:.75rem}.host-detail-issues-list{color:#92400e;font-size:.8rem;margin:.25rem 0 0;padding-left:1.25rem}.host-detail-issues-list li{margin-bottom:.2rem}.host-audit-section{padding:.5rem 0}.host-audit-title{font-size:1.1rem;margin:0 0 .75rem}.host-audit-cards{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-bottom:1.5rem}.host-audit-card{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;padding:1rem .5rem;transition:box-shadow .15s,border-color .15s}.host-audit-card:hover{box-shadow:0 2px 8px #0000000f}.host-audit-card-value{font-size:1.5rem;font-weight:700;line-height:1.1}.host-audit-card-label{color:#64748b;font-size:.78rem;margin-top:.25rem}.host-audit-card.severity-good .host-audit-card-value{color:#16a34a}.host-audit-card.severity-warn .host-audit-card-value{color:#d97706}.host-audit-card.severity-bad .host-audit-card-value{color:#dc2626}.host-audit-card.severity-good{border-color:#bbf7d0}.host-audit-card.severity-warn{border-color:#fde68a}.host-audit-card.severity-bad{border-color:#fca5a5}.host-audit-unmapped{margin-top:.5rem}.host-audit-unmapped h4{font-size:1rem;margin:0 0 .25rem}.host-audit-unmapped-hint{color:#64748b;font-size:.8rem;margin:0 0 .75rem}.host-audit-none{color:#94a3b8;font-style:italic}.host-audit-loading{color:#64748b;padding:1rem;text-align:center}.host-audit-unmapped-table-wrapper{border:1px solid #e2e8f0;border-radius:8px;overflow-x:auto}.host-audit-unmapped-table{border-collapse:collapse;font-size:.85rem;width:100%}.host-audit-unmapped-table thead th{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#334155;font-weight:600;padding:.5rem;text-align:left}.host-audit-unmapped-table td{border-bottom:1px solid #f1f5f9;padding:.45rem .5rem}@media (max-width:960px){.hosts-table-and-detail{flex-direction:column}.hosts-detail-pane{max-width:none;min-width:0}}.login-page{align-items:center;background-color:#f5f5f5;display:flex;height:100vh;justify-content:center}.login-container{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;max-width:400px;padding:40px;text-align:center;width:90%}.login-container h1{color:#333;font-size:2em;margin-bottom:10px}.login-container h2{color:#666;font-size:1.2em;margin-bottom:30px}.google-login-button{align-items:center;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;font-size:16px;gap:10px;justify-content:center;padding:12px 24px;transition:background-color .3s,box-shadow .3s;width:100%}.google-login-button:hover{background-color:#f8f8f8;box-shadow:0 2px 4px #0000001a}.google-login-button img{height:18px;width:18px}
/*# sourceMappingURL=main.97df148c.css.map*/