*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:#f5f5f5;color:#333;line-height:1.6}.app-container{max-width:800px;margin:0 auto;padding:40px 20px}.app-title{text-align:center;margin-bottom:40px;color:#2c3e50}.uploader-container{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 10px #0000001a;margin-bottom:30px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#555}.form-group input[type=text]{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:16px}.form-group input[type=text]:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.file-type-select{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-size:16px;background-color:#fff;cursor:pointer}.file-type-select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.file-type-select:disabled{background-color:#f5f5f5;cursor:not-allowed}.drop-zone{border:2px dashed #ccc;border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background-color:#fafafa}.drop-zone:hover{border-color:#3498db;background-color:#f0f8ff}.drop-zone.drag-over{border-color:#3498db;background-color:#e8f4fc}.drop-zone.has-file{border-color:#27ae60;background-color:#e8f8f0}.drop-zone-text{color:#777;margin-bottom:10px}.drop-zone-hint{font-size:14px;color:#999}.selected-file{margin-top:15px;padding:10px;background-color:#f0f0f0;border-radius:4px;font-size:14px}.selected-file-name{font-weight:600;color:#333}.selected-file-size{color:#777;margin-left:10px}.file-input{display:none}.upload-button{width:100%;padding:14px;background-color:#3498db;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:600;cursor:pointer;transition:background-color .3s ease;margin-top:20px}.upload-button:hover:not(:disabled){background-color:#2980b9}.upload-button:disabled{background-color:#bdc3c7;cursor:not-allowed}.progress-container{margin-top:20px}.progress-bar-wrapper{height:20px;background-color:#ecf0f1;border-radius:10px;overflow:hidden}.progress-bar{height:100%;background-color:#3498db;transition:width .3s ease}.progress-text{text-align:center;margin-top:8px;font-size:14px;color:#555}.upload-status{margin-top:15px;padding:10px 15px;border-radius:4px;font-size:14px}.upload-status.uploading{background-color:#e8f4fc;color:#2980b9}.upload-status.polling{background-color:#fef9e7;color:#b7950b}.upload-status.completed{background-color:#e8f8f0;color:#27ae60}.upload-status.failed{background-color:#fdedec;color:#c0392b}.uploads-list-container{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 10px #0000001a}.uploads-list-title{margin-bottom:20px;color:#2c3e50;font-size:20px}.uploads-list{list-style:none}.upload-item{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid #eee}.upload-item:last-child{border-bottom:none}.upload-item-info{flex:1}.upload-item-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.upload-item-name{font-weight:600;color:#333}.file-type-badge{display:inline-block;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.file-type-time-attendance{background-color:#e8f4fc;color:#2980b9}.file-type-expenses{background-color:#fef9e7;color:#b7950b}.file-type-payroll{background-color:#e8f8f0;color:#27ae60}.file-type-employees{background-color:#f5eef8;color:#8e44ad}.upload-item-partner{font-size:14px;color:#777;margin-top:4px}.upload-item-time{font-size:12px;color:#999;margin-top:4px}.upload-item-status{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-transform:uppercase}.upload-item-status.pending{background-color:#ecf0f1;color:#7f8c8d}.upload-item-status.uploading{background-color:#e8f4fc;color:#3498db}.upload-item-status.processing{background-color:#fef9e7;color:#f39c12}.upload-item-status.completed{background-color:#e8f8f0;color:#27ae60}.upload-item-status.failed{background-color:#fdedec;color:#e74c3c}.no-uploads{text-align:center;color:#999;padding:40px 20px}.file-list{margin-top:15px;border:1px solid #eee;border-radius:4px;max-height:200px;overflow-y:auto}.file-list-item{display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid #eee}.file-list-item:last-child{border-bottom:none}.file-list-name{flex:1;font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list-size{font-size:12px;color:#999;margin-left:10px}.file-list-remove{background:none;border:none;color:#e74c3c;font-size:18px;cursor:pointer;padding:0 5px;margin-left:10px}.file-list-remove:hover{color:#c0392b}.upload-results{margin-top:15px;padding:15px;border-radius:4px}.upload-results.all-success{background-color:#e8f8f0}.upload-results.has-errors{background-color:#fef9e7}.upload-results-summary{font-weight:600;margin-bottom:10px}.success-count{color:#27ae60;margin-right:15px}.fail-count{color:#e74c3c}.upload-results-errors{font-size:13px}.upload-error-item{padding:5px 0;color:#c0392b}.upload-item-meta{display:flex;gap:15px;font-size:13px;color:#777;margin-top:4px}.upload-item-rows{color:#999}.upload-item-actions{display:flex;align-items:center;gap:10px}.upload-item-status.completed-with-errors{background-color:#fef9e7;color:#f39c12}.download-errors-btn{padding:5px 10px;font-size:12px;background-color:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer}.download-errors-btn:hover{background-color:#c0392b}.selected-files-summary{font-weight:600;color:#27ae60}.error-message{background-color:#fdedec;color:#c0392b;padding:12px;border-radius:4px;margin-top:15px;font-size:14px}
