/* Loading Animation */ .loading-spinner { display: none; width: 50px; height: 50px; border: 5px solid #f3f3f3; border-top: 5px solid #3B82F6; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* File Upload Progress */ .progress-bar { width: 100%; height: 6px; background-color: #e5e7eb; border-radius: 3px; overflow: hidden; display: none; margin: 1rem auto; max-width: 300px; } .progress-bar-fill { height: 100%; background-color: #3B82F6; width: 0%; transition: width 0.3s ease; } /* Tooltip */ .tooltip { position: relative; display: inline-block; } .tooltip .tooltip-text { visibility: hidden; background-color: #1f2937; color: white; text-align: center; padding: 8px 12px; border-radius: 6px; position: absolute; z-index: 1; bottom: 125%; left: 50%; transform: translateX(-50%); opacity: 0; transition: opacity 0.3s; font-size: 0.875rem; white-space: nowrap; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); } .tooltip:hover .tooltip-text { visibility: visible; opacity: 1; } /* File Type Icons */ .file-type-icon { font-size: 1.5rem; margin-right: 0.5rem; color: #3B82F6; } /* Success Animation */ @keyframes checkmark { 0% { transform: scale(0); opacity: 0; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(1); opacity: 1; } } .success-checkmark { display: none; color: #10B981; animation: checkmark 0.5s ease-in-out forwards; } /* Sample Data Cards */ .sample-btn { transition: all 0.3s ease; position: relative; overflow: hidden; } .sample-btn::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(rgba(255,255,255,0.1), rgba(255,255,255,0)); transform: translateY(-100%); transition: transform 0.3s ease; } .sample-btn:hover::after { transform: translateY(0); } .sample-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 15px rgba(0,0,0,0.1); } /* Drop Zone Enhancements */ .drop-zone { transition: all 0.3s ease; position: relative; overflow: hidden; } .drop-zone::before { position: absolute; top: 0; left: 0; right: 0; bottom: 0; border-radius: 8px; border: 2px dashed #3B82F6; opacity: 0; transition: opacity 0.3s ease; } .drop-zone:hover::before { opacity: 1; } /* File Info Card */ #fileInfo { background: linear-gradient(to right, #f8fafc, #f1f5f9); border: 1px solid #e2e8f0; transition: all 0.3s ease; } #fileInfo:hover { transform: translateY(-2px); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); } /* Features Section */ .feature-card { transition: all 0.3s ease; } .feature-card:hover { transform: translateY(-2px); box-shadow: 0 8px 15px rgba(0,0,0,0.1); } .feature-icon { transition: all 0.3s ease; } .feature-card:hover .feature-icon { transform: scale(1.1); color: #2563eb; } @media only screen and (max-width: 600px) { .feature-card p {grid-column: 1/3;} .feature-card i, .feature-card h3 {text-align: center;} .feature-card { display: grid; grid-template-columns: 1fr 2fr; align-items: baseline; } }