/* SurveyJS Save & Resume Frontend Styles */

.sjssr-save-progress-btn {
    background-color: #28a745 !important;
    color: white !important;
    padding: 10px 20px !important;
    border: none !important;
    border-radius: 5px !important;
    cursor: pointer !important;
    margin: 10px 5px !important;
    font-size: 14px !important;
    transition: background-color 0.3s ease !important;
}

.sjssr-save-progress-btn:hover {
    background-color: #218838 !important;
}

.sjssr-save-progress-btn:disabled {
    background-color: #6c757d !important;
    cursor: not-allowed !important;
}

/* Modal Styles */
#sjssr-modal {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

#sjssr-modal * {
    box-sizing: border-box !important;
}

#sjssr-modal input[type="email"],
#sjssr-modal input[type="text"] {
    font-size: 16px !important;
    line-height: 1.5 !important;
}

#sjssr-modal button {
    font-size: 16px !important;
    line-height: 1.5 !important;
    transition: background-color 0.3s ease !important;
}

#sjssr-modal button:hover {
    opacity: 0.9 !important;
}

/* Resume Page Styles */
.sjssr-resume-container {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}

.sjssr-verification-input:focus {
    outline: none !important;
    border-color: #007cba !important;
    box-shadow: 0 0 0 2px rgba(0, 124, 186, 0.2) !important;
}

.sjssr-button:focus {
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(0, 124, 186, 0.2) !important;
}

/* Message Styles */
.sjssr-message {
    border-radius: 5px !important;
    margin: 15px 0 !important;
}

.sjssr-message p {
    margin: 0 !important;
}

/* Responsive Design */
@media (max-width: 768px) {
    .sjssr-save-progress-btn {
        width: 100% !important;
        margin: 10px 0 !important;
    }
    
    #sjssr-modal > div {
        width: 95% !important;
        margin: 20px auto !important;
    }
    
    .sjssr-resume-container {
        margin: 20px auto !important;
        padding: 20px !important;
    }
    
    .sjssr-verification-input {
        width: 100% !important;
        max-width: 200px !important;
    }
}

/* Animation */
@keyframes sjssr-fadeIn {
    from { opacity: 0; transform: scale(0.9); }
    to { opacity: 1; transform: scale(1); }
}

#sjssr-modal > div {
    animation: sjssr-fadeIn 0.3s ease-out !important;
}

/* Loading State */
.sjssr-loading {
    position: relative !important;
}

.sjssr-loading::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 20px !important;
    height: 20px !important;
    margin: -10px 0 0 -10px !important;
    border: 2px solid #f3f3f3 !important;
    border-top: 2px solid #007cba !important;
    border-radius: 50% !important;
    animation: sjssr-spin 1s linear infinite !important;
}

@keyframes sjssr-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* High contrast mode support */
@media (prefers-contrast: high) {
    .sjssr-save-progress-btn {
        border: 2px solid currentColor !important;
    }
    
    .sjssr-message {
        border-width: 2px !important;
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
    .sjssr-save-progress-btn,
    #sjssr-modal button,
    #sjssr-modal > div {
        transition: none !important;
        animation: none !important;
    }
}
