:root{--primary-color:#7957a8;--secondary-color:#4a148c;--accent-color:#bb86fc;--success-color:#4caf50;--warning-color:#ff9800;--danger-color:#f44336;--light-bg:#f9f7fd;--dark-bg:#f2e7fe;--border-color:#e0e0e0;--text-color:#333;--text-secondary:#666}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,0.5);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-dialog{background-color:white;border-radius:8px;box-shadow:0 4px 15px rgba(0,0,0,0.2);width:90%;max-width:600px;animation:fadeIn 0.3s ease-out;position:relative}@keyframes fadeIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:20px;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#999;transition:color 0.2s}.modal-body{padding:20px}.modal-footer{padding:15px 20px;border-top:1px solid var(--border-color);text-align:right;display:flex;justify-content:flex-end;gap:10px}.column-list{max-height:300px;overflow-y:auto;margin:10px 0}.column-item{display:flex;align-items:center;padding:8px 10px;margin-bottom:5px;background-color:#fff;border-radius:4px;border:1px solid var(--border-color);transition:all 0.2s}.column-item:hover{background-color:var(--light-bg);border-color:var(--primary-color)}.column-item label{display:flex;align-items:center;width:100%;cursor:pointer}.column-item input[type="checkbox"]{margin-right:10px;width:18px;height:18px}.selection-actions{display:flex;justify-content:space-between;margin:15px 0}.preview-window{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:1000px;background-color:white;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,0.25);z-index:1100;display:flex;flex-direction:column;max-height:80vh}.preview-header{padding:15px 20px;background-color:var(--primary-color);color:white;border-top-left-radius:8px;border-top-right-radius:8px;display:flex;justify-content:space-between;align-items:center}.preview-body{flex:1;overflow:auto;padding:0}.preview-table{width:100%;border-collapse:collapse}.preview-table th{background-color:var(--dark-bg);color:var(--secondary-color);text-align:left;padding:12px 15px;position:sticky;top:0;z-index:10}.preview-table td{padding:10px 15px;border-bottom:1px solid var(--border-color)}.preview-table tr:nth-child(even){background-color:var(--light-bg)}.preview-table tr:hover{background-color:var(--dark-bg)}.preview-footer{padding:15px 20px;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center}.btn{padding:10px 15px;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:all 0.3s;font-size:0.95rem;display:inline-flex;align-items:center;justify-content:center}.btn-primary{background-color:var(--primary-color);color:white;box-shadow:0 2px 5px rgba(121,87,168,0.3)}.btn-primary:hover{background-color:#6a4c96;transform:translateY(-1px)}.btn-secondary{background-color:#f2f2f2;color:#333;border:1px solid #ddd}.btn-secondary:hover{background-color:#e6e6e6;border-color:#ccc}.btn:disabled{background-color:#e0e0e0!important;color:#a0a0a0!important;cursor:not-allowed;box-shadow:none!important;transform:none!important}.more-rows{text-align:center;padding:15px;color:var(--text-secondary);background-color:#f9f9f9;border-top:1px dashed var(--border-color)}.steps-container{display:flex;justify-content:space-between;margin:15px 0 30px;position:relative;max-width:800px;margin-left:auto;margin-right:auto}.steps-container:before{content:"";position:absolute;width:100%;height:3px;background-color:#e0e0e0;top:25px;left:0;z-index:1}.step{display:flex;flex-direction:column;align-items:center;position:relative;z-index:2;flex:1;text-align:center}.step-number{width:50px;height:50px;border-radius:50%;background-color:white;border:3px solid #e0e0e0;display:flex;align-items:center;justify-content:center;font-weight:bold;font-size:1.2rem;color:#999;margin-bottom:10px;transition:all 0.3s}.step-label{color:#999;font-weight:500;font-size:0.9rem;transition:all 0.3s}.step.active .step-number{border-color:var(--primary-color);color:var(--primary-color);transform:scale(1.1)}.step.active .step-label{color:var(--primary-color);font-weight:bold}.step.completed .step-number{background-color:var(--primary-color);border-color:var(--primary-color);color:white}.step.completed:before{border-color:var(--primary-color)}.progress-container{height:10px;width:100%;background-color:#f2f2f2;border-radius:5px;margin:20px 0;position:relative;overflow:hidden;display:none}.progress-bar{height:100%;width:0;background-color:var(--primary-color);position:absolute;top:0;left:0;transition:width 0.3s}.processing-status{text-align:center;color:#666;font-size:0.9rem;margin-top:5px;display:none}.upload-area{border:2px dashed #ccc;border-radius:8px;padding:40px 20px;text-align:center;margin:20px 0 40px;background-color:#f9f9f9;cursor:pointer;transition:all 0.3s;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.upload-area:hover{border-color:var(--primary-color);background-color:#f5f0fa}.upload-area.dragover{border-color:var(--primary-color);background-color:#efe5fd}.upload-icon{width:60px;height:60px;margin-bottom:15px;object-fit:contain;transition:transform 0.3s;display:block}.upload-area:hover .upload-icon{transform:scale(1.1)}.upload-area p{margin:10px 0 0;color:#666;font-size:1rem}.file-info{margin:20px 0;padding:15px;background-color:#f0f8ff;border-radius:5px;border-left:4px solid #1e88e5;display:none}.file-info p{margin:5px 0;color:#555}.file-info strong{color:#1e88e5}.instructions{margin:30px 0;padding:20px;background-color:#f9f7fd;border-radius:8px;border-left:4px solid var(--primary-color)}.instructions h4{color:var(--primary-color);margin-bottom:15px;font-size:1.1rem}.instructions ul{margin-left:20px}.instructions li{margin-bottom:10px;color:#555;line-height:1.4}.instructions li:last-child{margin-bottom:0}.worksheet-options{margin:20px 0}.sheet-list{margin-top:15px}.sheet-item{padding:15px;background-color:white;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}.sheet-item:hover{background-color:#f9f7fd}.sheet-info{flex-grow:1}.sheet-name{font-weight:bold;color:#333;margin-bottom:5px}.sheet-rows{color:#777;font-size:0.9rem}.sheet-actions{display:flex;align-items:center;gap:10px}.action-btn{background-color:#f2e7fe;color:var(--primary-color);border:none;border-radius:4px;padding:8px 12px;cursor:pointer;font-size:0.9rem}.action-btn:hover{background-color:#e1bee7}.selected-info{margin:20px 0;padding:15px;background-color:#e8f5e9;border-radius:6px;border-left:4px solid #43a047}.sheet-columns{margin-bottom:15px}.sheet-columns:last-child{margin-bottom:0}.column-names{color:#555;font-style:italic;margin-top:5px}.step-content{display:none;animation:fadeIn 0.5s ease-out}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.step-content h3{color:var(--primary-color);margin-bottom:20px;font-size:1.3rem;border-bottom:1px solid #e0e0e0;padding-bottom:10px}.export-section{margin:30px 0}.export-section h4{color:var(--primary-color);margin-bottom:15px;font-size:1.1rem;font-weight:500}.format-selection{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px}.format-option{background-color:white;border:1px solid #e0e0e0;border-radius:6px;padding:15px;cursor:pointer;min-width:150px;flex:1;transition:all 0.3s;display:flex;flex-direction:column;align-items:center}.format-option:hover{border-color:var(--primary-color);background-color:var(--light-bg);transform:translateY(-2px)}.format-option input[type="radio"]{margin-right:10px}.format-option label{display:flex;align-items:center;cursor:pointer;margin-bottom:5px}.format-option span{color:#777;font-size:0.85rem}#exportBtn{margin-top:20px}.action-buttons{display:flex;justify-content:space-between;align-items:center;margin-top:30px;border-top:1px solid #e0e0e0;padding-top:20px}.left-buttons{display:flex;gap:10px}.right-buttons{display:flex;gap:10px}.message-container{position:fixed;top:20px;right:20px;width:300px;padding:15px;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:9999;display:none}.message-container.success{background-color:#e8f5e9;border-left:4px solid #43a047;color:#2e7d32}.message-container.error{background-color:#fdeded;border-left:4px solid #e53935;color:#c62828}.message-container.show{display:block}.message-content{margin-right:20px}.message-close{position:absolute;top:10px;right:10px;background:none;border:none;color:inherit;font-size:18px;cursor:pointer;opacity:0.7;transition:opacity 0.2s}.message-close:hover{opacity:1}@media (max-width:768px){.steps-container{flex-direction:column;align-items:flex-start;margin:15px 0}.step{margin-bottom:15px;flex-direction:row;width:100%}.step-number{margin-right:10px;margin-bottom:0}.action-buttons{flex-direction:column;gap:15px}.btn{width:100%}.format-selection{flex-direction:column}}.data-preview-container{background-color:white;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.1);overflow:hidden;margin-top:20px;display:flex;flex-direction:column;max-height:500px;border:1px solid #e0e0e0}.data-preview-container .sheet-tabs{display:flex;background-color:#f5f5f5;border-bottom:1px solid #e0e0e0;overflow-x:auto;white-space:nowrap}.data-preview-container .sheet-tab{padding:10px 20px;cursor:pointer;color:#666;font-weight:500;border-right:1px solid #e0e0e0;transition:all 0.2s;min-width:100px;text-align:center}.data-preview-container .sheet-tab:hover{background-color:#eee;color:#333}.data-preview-container .sheet-tab.active{background-color:white;color:var(--primary-color);border-bottom:2px solid var(--primary-color)}.data-preview-container .preview-table{width:100%;border-collapse:collapse;font-size:0.9rem}.data-preview-container .preview-table th{padding:12px 15px;text-align:left;background-color:#f9f7fd;color:var(--primary-color);font-weight:500;position:sticky;top:0}.data-preview-container .preview-table td{padding:10px 15px;border-bottom:1px solid #e0e0e0}.data-preview-container .preview-table tr:nth-child(even){background-color:#f9f9f9}.data-preview-container .preview-table tr:hover{background-color:#f5f0fa}.data-preview-container .preview-footer{padding:15px;text-align:center;border-top:1px solid #e0e0e0;background-color:#f9f9f9;display:flex;justify-content:center}.data-preview-container .more-rows{font-style:italic;color:#888;padding:10px;text-align:center}.data-summary{margin:30px 0;background-color:white;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.1);padding:20px;border-top:3px solid var(--primary-color)}.summary-section{margin-bottom:30px}.summary-section h3{color:var(--primary-color);margin-bottom:15px;font-size:1.2rem;border-bottom:1px solid #e0e0e0;padding-bottom:10px}.preview-section{margin-top:30px}.preview-section h4{color:var(--primary-color);margin-bottom:15px;font-size:1.1rem;font-weight:500;display:flex;align-items:center;gap:10px}.data-summary table{width:100%;border-collapse:collapse;margin:15px 0;font-size:0.9rem}.data-summary th{background-color:var(--dark-bg);color:var(--secondary-color);padding:12px 15px;text-align:left;font-weight:500}.data-summary td{padding:10px 15px;border-bottom:1px solid #e0e0e0}.data-summary tr:nth-child(even){background-color:#f9f9f9}.data-summary tr:hover{background-color:var(--light-bg)}.data-summary .details-card{background-color:white;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.05);border:1px solid #e0e0e0;overflow:hidden}.data-summary .card-header{background-color:var(--dark-bg);color:var(--secondary-color);padding:15px 20px;font-weight:500;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e0e0e0}.data-summary .file-card{padding:20px;margin-bottom:20px;background-color:#f9f9f9;border-radius:8px;border-left:3px solid var(--primary-color);box-shadow:0 2px 5px rgba(0,0,0,0.05)}.data-summary .stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;margin:20px 0}.data-summary .stat-item{background-color:white;border-radius:8px;box-shadow:0 2px 5px rgba(0,0,0,0.05);padding:15px;text-align:center;border-top:3px solid var(--primary-color)}.data-summary .stat-value{font-size:1.8rem;font-weight:bold;color:var(--primary-color);margin:10px 0}.data-summary .stat-label{color:#666;font-size:0.9rem} 