.App{min-height:100vh;background-color:#0b2c48}.header{background:#0b2c48;border-bottom:1px solid #0A3F68;color:#fff;padding:1.5rem 2rem;box-shadow:0 2px 4px #0003}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}.header h1{margin-bottom:.5rem;font-size:2.5rem;color:#fff}.header p{opacity:.9;font-size:1.1rem;color:#d1d5db}.container{max-width:1400px;margin:0 auto;padding:2rem}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#2f3c4f;border:1px solid #98C9CA;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0003;text-align:center}.stat-card h3{color:#d1d5db;font-size:.9rem;text-transform:uppercase;margin-bottom:.5rem}.stat-value{font-size:2.5rem;font-weight:700;color:#6bb4b5}.actions-section{margin-bottom:2rem;text-align:center}.scrapers-section h2{margin-bottom:1.5rem;color:#fff}.scrapers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.scraper-card{background:#2f3c4f;border:1px solid #98C9CA;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0003;transition:transform .2s,box-shadow .2s}.scraper-card:hover{transform:translateY(-2px);box-shadow:0 0 20px #6bb4b54d}.scraper-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #0A3F68}.scraper-header h3{color:#fff;font-size:1.1rem}.status-badge{padding:.25rem .75rem;border-radius:12px;color:#fff;font-size:.8rem;font-weight:700;text-transform:uppercase}.scraper-details{margin-bottom:1rem}.detail-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid #0A3F68}.detail-row:last-child{border-bottom:none}.detail-row .label{color:#9ca3af;font-weight:500}.detail-row .value{color:#d1d5db;font-weight:600}.detail-row.error .value{color:#cf6679;font-size:.9rem}.scraper-actions{display:flex;gap:.5rem;margin-top:1rem}.btn{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary{background:linear-gradient(to bottom,#6bb4b5,#9cd6d7,#85c4c7);color:#0b0b0f}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 0 20px #6bb4b566}.btn-secondary{background:linear-gradient(90deg,#1c4262 6%,#284165 96%);color:#fff}.btn-small{padding:.5rem 1rem;font-size:.9rem;flex:1}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:1.5rem;color:#6bb4b5}.tabs{display:flex;justify-content:center;gap:1rem;padding:1rem;background:#0a3f68;box-shadow:0 2px 4px #0003}.tab{padding:.75rem 2rem;border:none;background:transparent;color:#9ca3af;font-size:1rem;font-weight:600;cursor:pointer;border-bottom:3px solid transparent;transition:all .2s}.tab:hover{color:#6bb4b5}.tab.active{color:#6bb4b5;border-bottom-color:#6bb4b5}.csv-section{margin-top:2rem}.csv-section h2{color:#fff;margin-bottom:.5rem}.csv-section>p{color:#9ca3af;margin-bottom:2rem}.csv-upload-section{background:#2f3c4f;border:1px solid #98C9CA;padding:2rem;border-radius:8px;box-shadow:0 2px 4px #0003;margin-bottom:2rem}.upload-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#d1d5db}.form-group input[type=file]{padding:.5rem;border:2px dashed #6BB4B5;border-radius:6px;cursor:pointer;color:#d1d5db;background:#0b2c48}.form-group input[type=number]{padding:.75rem;border:1px solid #0A3F68;border-radius:6px;font-size:1rem;max-width:200px;background:#0b2c48;color:#d1d5db}.form-group input[type=text],.form-group select{padding:.75rem;border:1px solid #0A3F68;border-radius:6px;font-size:1rem;background:#0b2c48;color:#d1d5db;width:100%}.file-name{color:#6bb4b5;font-weight:600;margin-left:1rem}.csv-jobs-section{margin-top:2rem}.csv-jobs-section h3{color:#fff;margin-bottom:1rem}.jobs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.job-card{background:#2f3c4f;border:1px solid #98C9CA;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0003;transition:transform .2s,box-shadow .2s}.job-card:hover{transform:translateY(-2px);box-shadow:0 0 20px #6bb4b54d}.job-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #0A3F68}.job-header h4{color:#fff;font-size:1rem}.job-details{margin-bottom:1rem}.job-actions{display:flex;gap:.5rem;margin-top:1rem}.job-results-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#2f3c4f;border:1px solid #98C9CA;border-radius:8px;padding:2rem;max-width:600px;max-height:80vh;overflow-y:auto;box-shadow:0 4px 16px #0006}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #0A3F68}.modal-header h3{color:#fff;margin:0}.modal-header button{background:none;border:none;font-size:2rem;color:#9ca3af;cursor:pointer;padding:0;width:32px;height:32px;line-height:1}.modal-header button:hover{color:#fff}.modal-body{color:#d1d5db}.modal-body h4{margin-top:1.5rem;margin-bottom:1rem;color:#6bb4b5}.confirm-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1100}.confirm-modal{background:#2f3c4f;border:1px solid #98C9CA;border-radius:8px;padding:1.5rem;max-width:400px;width:90%;box-shadow:0 4px 16px #0006}.confirm-modal-header{margin-bottom:1rem;padding-bottom:.75rem;border-bottom:2px solid #0A3F68}.confirm-modal-header h3{color:#fff;margin:0;font-size:1.25rem}.confirm-modal-body{margin-bottom:1.5rem}.confirm-modal-body p{color:#d1d5db;margin:0;line-height:1.5}.confirm-modal-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn-secondary{background:linear-gradient(90deg,#1c4262 6%,#284165 96%);color:#98c9ca;border:1px solid #98C9CA}.btn-secondary:hover{background:linear-gradient(90deg,#284165 6%,#1c4262 96%)}.btn-warning{background:linear-gradient(90deg,#1c4262 6%,#284165 96%);color:#f59e0b;border:1px solid #F59E0B}.btn-warning:hover{background:#f59e0b26}.btn-danger{background:#cf667926;color:#cf6679;border:1px solid #CF6679}.btn-danger:hover{background:#cf667940}.files-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.file-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#0b2c48;border:1px solid #0A3F68;border-radius:6px}.file-item span{font-size:.9rem;color:#9ca3af}.login-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#0b2c48,#0a3f68,#1c4262);padding:2rem}.login-card{background:#2f3c4f;border:1px solid #98C9CA;border-radius:12px;padding:3rem;width:100%;max-width:420px;box-shadow:0 8px 32px #0000004d}.login-header{text-align:center;margin-bottom:2rem}.login-header h1{font-size:2.5rem;color:#6bb4b5;margin-bottom:.5rem;letter-spacing:2px}.login-header p{color:#9ca3af;font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:1.5rem}.login-form .form-group{display:flex;flex-direction:column;gap:.5rem}.login-form .form-group label{color:#d1d5db;font-weight:600;font-size:.9rem}.login-form .form-group input{padding:.875rem 1rem;border:1px solid #0A3F68;border-radius:6px;font-size:1rem;background:#0b2c48;color:#d1d5db;transition:border-color .2s,box-shadow .2s}.login-form .form-group input:focus{outline:none;border-color:#6bb4b5;box-shadow:0 0 0 3px #6bb4b533}.login-form .form-group input::placeholder{color:#6b7280}.login-error{background:#cf66791a;border:1px solid #CF6679;color:#cf6679;padding:.875rem 1rem;border-radius:6px;font-size:.9rem;text-align:center}.login-btn{width:100%;padding:1rem;font-size:1.1rem;margin-top:.5rem}.login-btn:disabled{opacity:.7;cursor:not-allowed}.login-footer{text-align:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid #0A3F68}.login-footer p{color:#6b7280;font-size:.85rem}.admin-panel{margin-top:2rem}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.admin-header h2{color:#fff;margin:0}.admin-error{background:#cf66791a;border:1px solid #CF6679;color:#cf6679;padding:1rem;border-radius:6px;margin-bottom:1.5rem}.security-summary{background:#2f3c4f;border:1px solid #98C9CA;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.security-summary h3{color:#fff;margin-bottom:1rem;font-size:1.1rem}.security-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.security-stat{background:#0b2c48;border:1px solid #0A3F68;border-radius:6px;padding:1rem;text-align:center}.security-stat .stat-label{display:block;color:#9ca3af;font-size:.8rem;margin-bottom:.5rem;text-transform:uppercase}.security-stat .stat-value{font-size:1.5rem;font-weight:700;color:#d1d5db}.security-stat .stat-value.success{color:#6bb4b5}.security-stat .stat-value.warning{color:#f59e0b}.security-stat .stat-value.danger{color:#cf6679}.create-user-form{background:#2f3c4f;border:1px solid #98C9CA;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.create-user-form h3{color:#fff;margin-bottom:1.5rem}.create-user-form form{display:flex;flex-direction:column;gap:1rem}.create-user-form small{color:#6b7280;font-size:.8rem}.form-error{background:#cf66791a;border:1px solid #CF6679;color:#cf6679;padding:.75rem;border-radius:6px;font-size:.9rem}.users-list{margin-top:2rem}.users-list h3{color:#fff;margin-bottom:1rem}.users-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.user-card{background:#2f3c4f;border:1px solid #98C9CA;border-radius:8px;padding:1.5rem;transition:transform .2s,box-shadow .2s}.user-card:hover{transform:translateY(-2px);box-shadow:0 0 20px #6bb4b54d}.user-card.disabled{opacity:.6;border-color:#6b7280}.user-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #0A3F68}.user-info h4{color:#fff;margin:0 0 .25rem;font-size:1.1rem}.user-email{color:#9ca3af;font-size:.85rem}.role-badge{padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:700;text-transform:uppercase}.role-badge.admin{background:linear-gradient(to bottom,#6bb4b5,#85c4c7);color:#0b0b0f}.role-badge.user{background:#0a3f68;color:#d1d5db}.user-details{margin-bottom:1rem}.user-details .detail-row .value.active{color:#6bb4b5}.user-details .detail-row .value.disabled{color:#cf6679}.user-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.btn-warning{background:#f59e0b;color:#0b0b0f}.btn-warning:hover{background:#d97706}.btn-danger{background:#cf6679;color:#fff}.btn-danger:hover{background:#b55464}.current-user-badge{background:#0a3f68;color:#6bb4b5;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:600}.user-menu{display:flex;align-items:center;gap:1rem}.user-display{color:#d1d5db;font-size:.9rem}.user-display strong{color:#6bb4b5}.logout-btn{padding:.5rem 1rem;font-size:.85rem}.upload-history{padding:1.5rem}.upload-history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.upload-history-header h2{color:#fff;margin:0}.upload-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid #0A3F68;padding-bottom:.5rem}.tab-btn{background:transparent;border:none;color:#d1d5db;padding:.75rem 1.5rem;cursor:pointer;border-radius:6px 6px 0 0;transition:all .2s}.tab-btn:hover{background:#0a3f68;color:#fff}.tab-btn.active{background:#6bb4b5;color:#0b2c48;font-weight:600}.upload-overview .stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.upload-overview .stat-card{background:#2f3c4f;border:1px solid #98C9CA;padding:1.5rem;border-radius:8px;text-align:center}.upload-overview .stat-card .stat-value{font-size:2rem;font-weight:700;color:#6bb4b5;margin-bottom:.5rem}.upload-overview .stat-card .stat-label{color:#d1d5db;font-size:.9rem}.breakdown-section{background:#2f3c4f;border:1px solid #0A3F68;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.breakdown-section h3{color:#fff;margin-bottom:1rem;font-size:1.1rem}.breakdown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.breakdown-item{display:flex;justify-content:space-between;align-items:center;background:#0a3f68;padding:.75rem 1rem;border-radius:6px}.breakdown-label{color:#d1d5db}.breakdown-value{color:#6bb4b5;font-weight:600}.upload-jobs{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media (max-width: 1024px){.upload-jobs{grid-template-columns:1fr}}.jobs-list{display:flex;flex-direction:column;gap:.75rem;max-height:600px;overflow-y:auto}.job-card{background:#2f3c4f;border:1px solid #0A3F68;border-radius:8px;padding:1rem;cursor:pointer;transition:all .2s}.job-card:hover{border-color:#6bb4b5}.job-card.selected{border-color:#6bb4b5;background:#0a3f68}.job-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.job-id{color:#fff;font-family:monospace;font-size:.9rem}.job-status{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.job-status.completed{background:#0a4f5a;color:#6bb4b5}.job-status.completed_with_errors{background:#78350f;color:#f59e0b}.job-status.running{background:#1e40af;color:#60a5fa}.job-status.failed{background:#5a2a34;color:#cf6679}.job-meta{display:flex;gap:1rem;margin-bottom:.5rem;font-size:.85rem;color:#d1d5db}.job-stats{display:flex;gap:1rem;font-size:.85rem}.job-stats .stat{color:#98c9ca}.job-stats .stat.error{color:#cf6679}.job-details{background:#2f3c4f;border:1px solid #0A3F68;border-radius:8px;padding:1.5rem}.job-details h3{color:#fff;margin-bottom:1rem}.job-details h4{color:#6bb4b5;margin:1.5rem 0 .75rem;font-size:1rem}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.detail-row{display:flex;justify-content:space-between;padding:.5rem;background:#0a3f68;border-radius:4px}.detail-row .label{color:#d1d5db}.detail-row .value{color:#fff;font-weight:500}.detail-row .value.error{color:#cf6679}.detail-row .value.status-completed{color:#6bb4b5}.detail-row .value.status-failed{color:#cf6679}.detail-row .value.status-running{color:#60a5fa}.source-breakdown,.error-messages{margin-top:1rem}.error-messages ul{list-style:none;padding:0;margin:0}.error-item{background:#5a2a34;color:#e0a0ad;padding:.5rem .75rem;border-radius:4px;margin-bottom:.5rem;font-size:.85rem}.collection-settings{max-width:800px}.collection-settings h3{color:#fff;margin-bottom:1rem}.settings-description{color:#d1d5db;margin-bottom:1.5rem;line-height:1.6}.collection-card{background:#2f3c4f;border:1px solid #0A3F68;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.collection-card h4{color:#6bb4b5;margin-bottom:.5rem;font-family:monospace;font-size:1.1rem}.collection-card>p{color:#d1d5db;margin-bottom:1rem}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem;margin-bottom:1rem}.setting-row{display:flex;justify-content:space-between;padding:.5rem .75rem;background:#0a3f68;border-radius:4px}.setting-row .label{color:#d1d5db}.setting-row .value{color:#fff;font-weight:500}.payload-fields h5{color:#fff;margin-bottom:.75rem}.payload-fields ul{list-style:none;padding:0;margin:0}.payload-fields li{color:#d1d5db;padding:.25rem 0;font-size:.9rem}.payload-fields code{background:#0a3f68;color:#6bb4b5;padding:.15rem .4rem;border-radius:3px;font-family:monospace;font-size:.85rem}.no-data{background:#2f3c4f;border:1px solid #0A3F68;border-radius:8px;padding:2rem;text-align:center;color:#d1d5db}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2rem}.stat-card{background:linear-gradient(135deg,#2f3c4f,#1c2a3a);border:1px solid #98C9CA;padding:1.25rem;border-radius:12px;box-shadow:0 4px 12px #0000004d;text-align:center;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #6bb4b540}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6bb4b5,#98c9ca)}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto .75rem}.stat-icon-active{background:#2196f326;color:#2196f3}.stat-icon-contracts,.stat-icon-database,.stat-icon-success{background:#6bb4b526;color:#6bb4b5}.stat-card h3{color:#9ca3af;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.stat-value{font-size:2rem;font-weight:700;color:#fff;margin-bottom:.25rem}.stat-subtitle{font-size:.75rem;color:#6b7280}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:8px;box-shadow:0 4px 16px #0006;animation:toastSlideIn .3s ease-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast-exit{animation:toastSlideOut .3s ease-in forwards}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast-success{background:linear-gradient(135deg,#9cd6d7f2,#6bb4b5f2);border:1px solid #6BB4B5;color:#fff}.toast-error{background:linear-gradient(135deg,#cf6679f2,#b55464f2);border:1px solid #CF6679;color:#fff}.toast-warning{background:linear-gradient(135deg,#f59e0bf2,#d97706f2);border:1px solid #F59E0B;color:#fff}.toast-info{background:linear-gradient(135deg,#6bb4b5f2,#98c9caf2);border:1px solid #6BB4B5;color:#fff}.toast-icon{flex-shrink:0;display:flex;align-items:center}.toast-message{flex:1;font-size:.9rem;line-height:1.4}.toast-close{background:none;border:none;color:#ffffffb3;cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .2s}.toast-close:hover{color:#fff}.loading-skeleton-container{padding:2rem}.skeleton{background:linear-gradient(90deg,#2f3c4f 25%,#3d4d5f,#2f3c4f 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s infinite;border-radius:4px}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-header{margin-bottom:2rem}.skeleton-title{height:32px;width:300px;margin-bottom:8px}.skeleton-subtitle{height:16px;width:200px}.skeleton-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:2rem}.skeleton-stat-card{background:#2f3c4f;border:1px solid #0A3F68;border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;align-items:center}.skeleton-icon{width:48px;height:48px;border-radius:12px;margin-bottom:12px}.skeleton-stat-label{height:12px;width:80px;margin-bottom:8px}.skeleton-stat-value{height:32px;width:60px}.skeleton-content{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.skeleton-card{height:200px;border-radius:8px}.skeleton-job-card{opacity:.7}.skeleton-job-id{height:20px;width:100px}.skeleton-badge{height:24px;width:80px;border-radius:12px}.skeleton-detail-row{height:16px;width:100%;margin-bottom:8px}.skeleton-button{height:36px;width:100px;border-radius:6px}.recent-activity{background:linear-gradient(135deg,#2f3c4f,#1c2a3a);border:1px solid #0A3F68;border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.recent-activity-title{display:flex;align-items:center;gap:8px;color:#fff;font-size:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #0A3F68}.recent-activity-title svg{color:#6bb4b5}.activity-list{display:flex;flex-direction:column;gap:.5rem}.activity-item{display:flex;align-items:center;gap:12px;padding:.75rem;background:#0b2c48;border-radius:8px;transition:background .2s}.activity-item:hover{background:#0a3f68}.activity-icon{flex-shrink:0}.activity-icon-success{color:#6bb4b5}.activity-icon-running{color:#3b82f6;animation:pulse 2s infinite}.activity-icon-error{color:#cf6679}.activity-icon-pending{color:#6b7280}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.activity-content{flex:1;display:flex;flex-direction:column;gap:2px}.activity-job-id{font-family:monospace;font-size:.85rem;color:#fff}.activity-type{font-size:.75rem;color:#6b7280}.activity-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.activity-status{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:2px 6px;border-radius:4px}.activity-status-completed{background:#6bb4b533;color:#6bb4b5}.activity-status-running{background:#3b82f633;color:#3b82f6}.activity-status-failed{background:#cf667933;color:#cf6679}.activity-time{font-size:.7rem;color:#6b7280}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;background:linear-gradient(135deg,#2f3c4f,#1c2a3a);border:2px dashed #0A3F68;border-radius:12px;text-align:center}.empty-state-icon{width:80px;height:80px;background:#6bb4b51a;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem;color:#6bb4b5}.empty-state-title{color:#fff;font-size:1.25rem;margin-bottom:.5rem}.empty-state-description{color:#9ca3af;font-size:.9rem;max-width:400px;margin-bottom:1.5rem;line-height:1.5}.empty-state-tips{background:#0b2c48;border-radius:8px;padding:1rem 1.5rem;text-align:left}.empty-state-tips h4{color:#6bb4b5;font-size:.85rem;margin-bottom:.5rem}.empty-state-tips ul{list-style:none;padding:0;margin:0}.empty-state-tips li{color:#d1d5db;font-size:.8rem;padding:.25rem 0;display:flex;align-items:center;gap:8px}.empty-state-tips li:before{content:"";width:4px;height:4px;background:#6bb4b5;border-radius:50%}.progress-bar-container{width:100%;height:8px;background:#0a3f68;border-radius:4px;overflow:hidden;margin:.75rem 0}.progress-bar{height:100%;background:linear-gradient(90deg,#6bb4b5,#98c9ca);border-radius:4px;transition:width .3s ease;position:relative}.progress-bar:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:progressShimmer 1.5s infinite}@keyframes progressShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-text{display:flex;justify-content:space-between;font-size:.75rem;color:#9ca3af;margin-top:.25rem}.status-with-icon{display:flex;align-items:center;gap:6px}.status-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center}.status-icon-completed{color:#6bb4b5}.status-icon-running{color:#3b82f6;animation:spin 1s linear infinite}.status-icon-failed{color:#cf6679}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.file-drop-zone{border:2px dashed #6BB4B5;border-radius:12px;padding:2rem;text-align:center;cursor:pointer;transition:all .2s;background:#0b2c48}.file-drop-zone:hover,.file-drop-zone.drag-over{border-color:#98c9ca;background:#6bb4b51a}.file-drop-zone.has-file{border-style:solid;border-color:#6bb4b5;background:#6bb4b51a}.file-drop-icon{width:48px;height:48px;margin:0 auto 1rem;color:#6bb4b5}.file-drop-text{color:#d1d5db;font-size:.95rem;margin-bottom:.5rem}.file-drop-hint{color:#6b7280;font-size:.8rem}.file-drop-selected{display:flex;align-items:center;justify-content:center;gap:8px;color:#6bb4b5;font-weight:600}.file-drop-selected svg{width:20px;height:20px}.advanced-options{margin-top:1rem}.advanced-options-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;color:#6bb4b5;font-size:.9rem;cursor:pointer;padding:.5rem 0;transition:color .2s}.advanced-options-toggle:hover{color:#98c9ca}.advanced-options-toggle svg{transition:transform .2s}.advanced-options-toggle.expanded svg{transform:rotate(180deg)}.advanced-options-content{overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .3s ease,padding .3s ease;background:#0b2c48;border-radius:8px}.advanced-options-content.expanded{max-height:500px;opacity:1;padding:1rem;margin-top:.5rem;border:1px solid #0A3F68}.keyboard-hint{position:fixed;bottom:20px;left:20px;background:#2f3c4ff2;border:1px solid #0A3F68;border-radius:8px;padding:.75rem 1rem;font-size:.75rem;color:#9ca3af;display:flex;align-items:center;gap:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100}.keyboard-hint kbd{background:#0a3f68;border:1px solid #1C4262;border-radius:4px;padding:2px 6px;font-family:monospace;color:#d1d5db}.progress-section{background:linear-gradient(135deg,#1c4262,#0a3f68);padding:1rem;border-radius:8px;margin-bottom:1rem;border:1px solid #284165}.progress-section .detail-row{background:transparent;border-bottom:1px solid rgba(107,180,181,.2);padding:.5rem 0}.progress-section .detail-row:last-child{border-bottom:none}.progress-section .label{color:#9ca3af}.progress-section .value{color:#fff}.parsing-progress{background:linear-gradient(135deg,#2d3748,#1a202c);padding:.75rem;border-radius:6px;margin-top:.75rem;border:1px solid #4A5568}.checkbox-group{display:flex;align-items:center}.checkbox-group label{display:flex;align-items:center;gap:10px;cursor:pointer;color:#d1d5db}.checkbox-group input[type=checkbox]{width:18px;height:18px;accent-color:#6BB4B5;cursor:pointer}@media (max-width: 768px){.stats-section{grid-template-columns:repeat(2,1fr)}.toast-container{left:10px;right:10px;max-width:none}.keyboard-hint{display:none}.recent-activity{margin-bottom:1rem}}.datetime-picker-row{display:flex;gap:1rem;width:100%}.datetime-picker-row label{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:#d1d5db;flex:1}.datetime-picker-row input[type=date],.datetime-picker-row input[type=time]{padding:.5rem;border:1px solid #4A5568;border-radius:6px;background:#1a2332;color:#e2e8f0;font-size:.9rem}.datetime-picker-row input[type=date]:focus,.datetime-picker-row input[type=time]:focus{outline:none;border-color:#98c9ca}.datetime-picker-row input::-webkit-calendar-picker-indicator{filter:invert(.8);cursor:pointer}.schedule-running-banner{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;margin:.5rem 0;background:#6bb4b51a;border:1px solid rgba(152,201,202,.35);border-radius:8px;font-size:.85rem;color:#98c9ca;flex-wrap:wrap}.running-indicator{width:8px;height:8px;border-radius:50%;background:#6bb4b5;animation:pulse-dot 1.5s ease-in-out infinite;flex-shrink:0}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.running-stats{margin-left:auto;font-weight:600;color:#9cd6d7;font-size:.8rem}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,-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:#0b2c48;color:#d1d5db}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
