 @keyframes slideUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        .vl-modal {
            background: white;
            border-radius: 12px;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
            width: 100%;
            max-width: 900px;
            max-height: 90vh;
            display: flex;
            flex-direction: column;
            animation: slideUp 0.3s ease-out;
            margin-bottom:20px;
            overflow: auto;
        }
 
        .vl-modal-header {
            padding: 24px;
            border-bottom: 2px solid #f0f0f0;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
 
        .vl-modal-title {
            font-size: 22px;
            font-weight: 600;
            color: #333;
        }
 
        .vl-modal-close {
            background: none;
            border: none;
            font-size: 28px;
            cursor: pointer;
            color: #999;
            transition: color 0.2s;
        }
 
        .vl-modal-close:hover {
            color: #333;
        }
 
        .vl-modal-body {
            flex: 1;
            overflow-y: auto;
            padding: 24px;
        }
 
        /* Form Styling */
        .vl-form-group {
            margin-bottom: 20px;
        }
 
        .vl-form-label {
            display: block;
            margin-bottom: 8px;
            font-weight: 500;
            color: #333;
            font-size: 14px;
        }
 
        .vl-form-input {
            width: 100%;
            padding: 10px 12px;
            border: 1px solid #ddd;
            border-radius: 6px;
            font-size: 14px;
            transition: border-color 0.2s;
        }
 
        .vl-form-input:focus {
            outline: none;
            border-color: #667eea;
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
        }
 
        /* Permissions Section */
        .permissions-grid {
            display: grid;
            gap: 20px;
        }
 
        .permission-module {
            border: 1px solid #e0e0e0;
            border-radius: 8px;
            padding: 16px;
            background: #f9f9f9;
        }
 
        .module-header {
            display: flex;
            align-items: center;
            margin-bottom: 16px;
            cursor: pointer;
            user-select: none;
        }
 
        .module-checkbox {
            width: 20px;
            height: 20px;
            margin-right: 12px;
            cursor: pointer;
            accent-color: #667eea;
        }
 
        .module-name {
            font-weight: 600;
            color: #333;
            font-size: 15px;
            flex: 1;
        }
 
        .vl-module-toggle {
            font-size: 20px;
            color: #999;
            transition: transform 0.2s;
        }
 
        .vl-module-toggle.collapsed {
            transform: rotate(-90deg);
        }
 
        .module-actions {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
            gap: 12px;
            margin-left: 32px;
        }
 
        .permission-item {
            display: flex;
            align-items: center;
        }
 
        .permission-checkbox {
            width: 18px;
            height: 18px;
            margin-right: 8px;
            cursor: pointer;
            accent-color: #667eea;
        }
 
        .permission-label {
            font-size: 13px;
            color: #555;
            cursor: pointer;
            user-select: none;
        }
 
        .select-all-group {
            margin-bottom: 20px;
            padding: 12px;
            background: #f0f4ff;
            border-left: 4px solid #667eea;
            border-radius: 4px;
        }
 
        .select-all-group label {
            display: flex;
            align-items: center;
            cursor: pointer;
            font-weight: 500;
            color: #333;
        }
 
        .select-all-group input {
            margin-right: 10px;
            width: 18px;
            height: 18px;
            accent-color: #667eea;
            cursor: pointer;
        }
 
        /* vl-modal Footer */
        .vl-modal-footer {
            padding: 16px 24px;
            border-top: 1px solid #f0f0f0;
            display: flex;
            justify-content: flex-end;
            gap: 12px;
        }
 
        .vl-btn-cancel {
            padding: 10px 24px;
            background: #f0f0f0;
            border: 1px solid #ddd;
            border-radius: 6px;
            cursor: pointer;
            font-weight: 500;
            color: #333;
            transition: all 0.2s;
        }
 
        .vl-btn-cancel:hover {
            background: #e0e0e0;
        }
 
        .vl-btn-submit {
            padding: 10px 24px;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            border-radius: 6px;
            cursor: pointer;
            font-weight: 500;
            transition: all 0.2s;
        }
 
        .btn-submit:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 20px rgba(102, 126, 234, 0.3);
        }
 
        .btn-submit:active {
            transform: translateY(0);
        }
 
        /* Responsive */
        @media (max-width: 768px) {
            .vl-modal {
                max-width: 95%;
            }
 
            .module-actions {
                grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
            }
 
            .vl-modal-header,
            .vl-modal-body,
            .vl-modal-footer {
                padding: 16px;
            }
        }
 
        /* Success Message */
        .success-message {
            padding: 12px 16px;
            background: #d4edda;
            color: #155724;
            border-left: 4px solid #28a745;
            border-radius: 4px;
            margin-bottom: 16px;
            display: none;
        }
 
        .success-message.show {
            display: block;
            animation: slideDown 0.3s ease-out;
        }
 
        @keyframes slideDown {
            from {
                opacity: 0;
                transform: translateY(-10px);
            }
            to {
                opacity: 1;
                transform: translateY(0);
            }
        }